Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть ли команда загрузки дампа, Через веб форму 
:(
    Опции темы
Druidik25
  Дата 21.6.2005, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



Есть ли такая команда в майскуель, или мож в пхп при помощи которой я могу указать, что файл, который выбрал пользователь - содержит команды скуель.

Тоесть: Создаю форму, в ней юзверь выбирает файл, а потом содержимое должно попасть в базу. Как это осуществить. Загрузить файл на сервак и загрузить его в сам скуель могу, а вот, чтобы он воспринималься не как данные, а как дамп... У меня не получается.

Мож подсобите? Если есть примерчик, буду очень благодарен, или линк на инфу.

Такой например как загрузить файл в пхпмайадмин... А то я его как то не разгребу... А жутко интерестно.

Спасибо.
PM MAIL ICQ   Вверх
Ignat
Дата 21.6.2005, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Druidik25 @ 21.6.2005, 06:25)
чтобы он воспринималься не как данные, а как дамп...

Чтобы это могло означать?

Как понимаю, это делается в два этапа:

1. загружается временный файл на сервер.
2. файл открывается для чтения и его содержимое выполняется как SQL.

Собственно все. Расписывать надо?


--------------------
Теперь при чем :P
PM   Вверх
Druidik25
Дата 21.6.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



Вот именно, что исполняется как mysql.
Это мне и надо.

Но я в mysql обращаюсь при помощи Mysql_query а когда данными идёт целый файл какую команду надо использовать? Уже ж не потянет Mysql_query(Файл)... :-)

Меня, просто, беспокоит обновление данных. Вот вдруг у провайдера не будет поддерживаться вот такое добавление данных (как загрузка на фтп). Да и пользователь в таком случае должен быть уровнем получьше среднего. А когда делаешь всё с страницы, то и ошибок меньше может быть, поскольку она будет предусматривать только те опции, которые я позволю. Да и авторизированный доступ должен быть... :-(

Если я чего-то недоразбираю, прошу не винить, я просто сижу над этой проблемой с вчерашнего дня (ещё без сна). И хочется как лучьше, а получается через....

Если можете скиньте екзампл, или линк, как с подобной проблемой можно бороться.

Спасибо.

Это сообщение отредактировал(а) Druidik25 - 21.6.2005, 18:42
PM MAIL ICQ   Вверх
Mal Hack
Дата 21.6.2005, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Druidik25 тебе надо разбить файл на запросы и уже каждый выполнять. mysqL_query несколько запросов не выполняет.
PM ICQ   Вверх
Druidik25
Дата 21.6.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



Это я уже испробовал. Я думал, что есть команда, похожая на mysql_query, которая сможет проглотить не одну а целый список команд... :-(
PM MAIL ICQ   Вверх
Mal Hack
Дата 21.6.2005, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Нету такой.
PM ICQ   Вверх
Ignat
Дата 22.6.2005, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Druidik25 @ 21.6.2005, 22:11)
Это я уже испробовал.


Тогда в чем вопрос? Если не работает, то нужно разбираться почему. Не забудь про ограничение по времени для выполнения PHP-скрипта.

Цитата(Mal @ 21.6.2005, 22:47)
Нету такой.


Наверное, я уже всё забыл, но помнится мне mysql_query кушал у меня сразу по несколько запросов. Единственная проблема, что возвращается только результат последнего, и если один промежуточный не был выполнен, то нужно делать откат. Проверить надо.



--------------------
Теперь при чем :P
PM   Вверх
Mal Hack
Дата 22.6.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(Ignat @ 22.6.2005, 09:27)
Тогда в чем вопрос? Если не работает, то нужно разбираться почему. Не забудь про ограничение по времени для выполнения PHP-скрипта.

двух метровый дамп SQL'ный выполняется максимум за 2-3 секунды.. А ограничение по реалу стоит не менее 10 секунд.

Цитата(Ignat @ 22.6.2005, 09:27)
Наверное, я уже всё забыл, но помнится мне mysql_query кушал у меня сразу по несколько запросов. Единственная проблема, что возвращается только результат последнего, и если один промежуточный не был выполнен, то нужно делать откат. Проверить надо.

Тут была тема где-то недавно, у товарища так и не получилось, у меня в свое время тоже, хотя может это версия библиотеки была старая.

Ignat
Смотри (из мана):
Цитата
The query string should not end with a semicolon.

Т.е. получается, что у тебя в любом случае нет разделителя запросов.

Хотя надо проверить будет.

Код
 <?php
error_reporting(E_ALL);
 define( 'DB_HOST' , 'localhost' );
 define( 'DB_PORT' , '' );
 define( 'DB_USER' , 'root' );
 define( 'DB_PASS' , '' );
 define( 'DB_NAME' , 'test' );

 $db = mysql_connect( ( defined( "DB_PORT" ) && is_int( DB_PORT ) ) ? DB_HOST : DB_HOST . ":" . DB_PORT , DB_USER , DB_PASS );

 if( !$db )
  {  exit( "Datebase connection failed." );  }

 if( ! mysql_select_db( DB_NAME ) )
  {  exit( "Datebase select failed." );  }

 mysql_query( "CREATE DATABASE test1; CREATE DATABASE test2" ) or die( mysql_error() );

?>

На выходе:
Цитата
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE DATABASE test2' at line 1

ПХП 4.3.11, MySQL 4.0.23
PM ICQ   Вверх
Ignat
Дата 22.6.2005, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Mal Hack, проверил. Так и есть.

Возможно, я тогда использовал что-то вроде :

Код

shell_exec("mysql <some.sql");



--------------------
Теперь при чем :P
PM   Вверх
Mal Hack
Дата 22.6.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Ignat а можешь точную команду для консоли по импорту SQL файла привести?
PM ICQ   Вверх
Ignat
Дата 22.6.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Судя по всему так:
Код

mysql -h host -u user -p pass < dump.sql > dump.out



http://dev.mysql.com/doc/mysql/ru/batch-mode.html


--------------------
Теперь при чем :P
PM   Вверх
fuckerok
Дата 14.7.2005, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 30.3.2004
Где: спб

Репутация: нет
Всего: нет



$cat dump.sql | mysql -h host -u user -p

всегда вставляю дамп так.

--------------------
PM MAIL ICQ   Вверх
Ignat
Дата 14.7.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(fuckerok @ 14.7.2005, 04:15)
$cat dump.sql | mysql -h host -u user -p

К сожалению, это не кроссплатформенный способ.


--------------------
Теперь при чем :P
PM   Вверх
ST_Falcon
Дата 14.1.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



Ignat
Цитата
mysql -h host -u user -p pass < dump.sql > dump.out

и pass писать сразу после ключа -p иначе пошлет...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1038 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.