EXPORT данных(код создания таблицы) из PhpMyadmin, EXPORT данных(код создания таблицы) из PhpMyadmin |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7057-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
EXPORT данных(код создания таблицы) из PhpMyadmin, EXPORT данных(код создания таблицы) из PhpMyadmin |
Lewui |
Пост
#1
|
Незарегистрированный ![]() |
Нужна помощь, нужно сделать вывод кода для создания таблицы из вкладки Экспорт(EXPORT) в PHPMYADMIN, что в таблице вкладка, вывести в текстратию.
Вывод кода для создания таблицы, вкладка Экспорт, текстария. (База данных - таблица - вкладка EXPORT - кнопка go - вывод кода в TEXTARIA) Оформление: Форма, текстария, комбобокс(для выбора таблицы) , кнопка вывода данных из EXPORT таблицы. Я начал делать только оформление, не знаю как сделать вывод из EXPORT в PHPMYADMIN. К примеру, EXPORT из таблицы Vasa: -- phpMyAdmin SQL Dump -- version 3.2.3 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Dec 22, 2015 at 10:39 AM -- Server version: 5.1.40 -- PHP Version: 5.3.1 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Database: `AvtobysPark` -- -- -------------------------------------------------------- -- -- Table structure for table `Vasa` -- CREATE TABLE IF NOT EXISTS `Vasa` ( `q` int(11) DEFAULT NULL, `w` varchar(50) DEFAULT NULL, `eret` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=cp1251; -- -- Dumping data for table `Vasa` -- Это нужно вывести в TEXTARIA Вот моё начало <form action=Export.php method=GET> <input type=hidden name=o value=<? print $_GET['o'];;?>> <select name='y1'> <option name=k value=1>Avtobys</option> <option name=k value=2>Marshryt</option> <option name=k value=3>Marshryt_punkt</option> <option name=k value=4>Nasel_pynkt</option> <option name=k value=5>Passazir</option> <option name=k value=6>Prodazha</option> <option name=k value=7>Raspisanie</option> <option name=k value=8>Vasa</option> </select> </form> <? mysql_connect("localhost","root") or die("no connect"); mysql_select_db("AvtobysPark"); print 'Export:<textarea name=zapr rows=20 cols =70 ></textarea><br><br>'; ?><input type=submit name=submit value=Go ><? ?> |
![]() ![]() |
elevenelven |
Пост
#2
|
Репутация: ![]() ![]() Активист ![]() Группа: Пользователи Сообщений: 218 С нами с: 2-June 07 ![]() |
Предположим не путаете. Я руководствовался тем, что утверждение использовать exec и Использовать exec/shell_exec несколько различаются. Не находите? Но давайте предположим что мы оба джентльмены и профессионалы.
- Во-первых, у www-юзера может быть закрыт доступ для на выполнение mysqldump (chmod ug=rwx,o=r) или mysqldump банально не будет в PATH. Это проблемы деплоя на прод. ----- - Во вторых - не всегда знаешь куда можно писать - самое верное - писать в /tmp опять же (у меня на хостах всех апач может писать только в пару директорий - DOCUMENT_ROOT/var и DOCUMENT_ROOT/media). Повторюсь, я не предлагал папку для записи. А если бы предлагал, то это была бы доступная для чтения\записи директория, для php-процесса. Более того, не у всех на хостах апач. И снова же, это проблема деплоя. ----- В третьих - в случае sql-инжекта, при использовании mysql_query можно поломать базу, в случае инжекта в shell_exec $dbName = "vasa && rm -rf ./" превращается в `mysqldump -u root -p --no-data vasa && rm -rf ./ > schema.sql` При фильтрации пользовательского ввода ( escapeshellarg() ), а также имплементации whitelist, инъекции исключены. Это проблема код-ревью, а не функции shell_exec(). ------ Я предложил использовать SQL query: SHOW CREATE TABLE vasa. Но к сожалению, не предложили как получить дамп данных. ------ а, и да, exec/shell_exec возвращает результат вывода, поэтому дампить в файлу незачем В файл пишем, потому что: - у пайпинга через backtick ограниченный буфер. - у процесса php ограничена память и нет смысла отъедать её текстовой информацией, которая неминуемо превысит лимит по памяти. - Дамп - это в итоге файл. Или вы думаете, кто-то читает текст дампов перед сном? ------ для выполнения того, что реализуется средствами языка Как средствами языка php получить дамп БД, можно изучить на примере исходников Syphex Dumper. Но это сотни строк кода. Дамп, конкатенация и работа со строками длинее 61440, пайпинг в файл. Используя mysqldump можно сократить код в разы, потому что это уже готово и это работает не на интерпретируемом языке, а на компилируемом. ------ В следующий раз, критикуя чужое решение, будьте готовы аргументировать свои высказывания. Потому что фразы типа Ну реально, использовать exec (да еще и с выводом в файл, да еще и не в /tmp) - самый глупый совет, который можно дать программисту. оставляют плохое впечатление. Вы ведь согласны, что дамп надо делать в файл? Что exec() и shell_exec() абсолютно разные функции? Сообщение отредактировал elevenelven - Dec 23 2015, 14:39 |
Vo1 |
Пост
#3
|
Благодарности: 749 Репутация: ![]() ![]() Старожил ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 396 С нами с: 10-November 06 ![]() |
Это проблемы деплоя на прод.
----- Это проблемы использования неверных инструментов для достижения цели Повторюсь, я не предлагал папку для записи. А если бы предлагал, то это была бы доступная для чтения\записи директория, для php-процесса. Более того, не у всех на хостах апач. И снова же, это проблема деплоя. ----- Это проблемы использования неверных инструментов для достижения цели. Апач, не апач, неважно, в любом случае не всегда вебсервер может писать повсюду. При фильтрации пользовательского ввода ( escapeshellarg() ), а также имплементации whitelist, инъекции исключены. Это проблема код-ревью, а не функции shell_exec(). ------ Я предложил использовать SQL query: SHOW CREATE TABLE vasa. Но к сожалению, не предложили как получить дамп данных. ------ SQL SHOW CREATE TABLE name возвращает CREATE TABLE. По заданию дампить данные человеку не нужно. С тем же успехом - вы тоже. Ведь не показано где и откуда его прочесть и как вывести. Я всего лишь показал наиболее корректный инструмент. От текущего кода он будет отличаться лишь mysql query/fetch функциями, тогда как ваш инструмент требует существования. К примеру, на моих проектах нет mysqldump как и mysql, т.к. база физически находится на другом сервере. - у процесса php ограничена память и нет смысла отъедать её текстовой информацией, которая неминуемо превысит лимит по памяти. Серьезно? CREATE TABLE-дамп неминуемо превысит лимит по памяти? четаржу. ------ для выполнения того, что реализуется средствами языка Как средствами языка php получить дамп БД, можно изучить на примере исходников Syphex Dumper. Но это сотни строк кода. Дамп, конкатенация и работа со строками длинее 61440, пайпинг в файл. Используя mysqldump можно сократить код в разы, потому что это уже готово и это работает не на интерпретируемом языке, а на компилируемом. Человеку по заданию нужно код создания таблицы, а не дамп БД. Использовать кувалду, чтоб убить муравья - неудобно. Сообщение отредактировал Vo1 - Dec 23 2015, 14:42 |
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 10th July 2025 - 21:23 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |