как загрузить sql-дамп с помощью mysql_query в php

#php #mysql

#php #mysql

Вопрос:

Для установки cms у меня есть форма, в которой я прошу пользователя ввести имя базы данных, в которую он хочет, чтобы скрипт создавал таблицы. После этого у меня есть только три таблицы cms.

я пытаюсь прочитать этот dump.sql файл, используя file = get_file_contents(dump.sql) а затем mysql_query($file); , но ничего не происходит, пожалуйста, предложите или помогите.

Ответ №1:

mysql_query не удается запустить несколько запросов одновременно.

вы можете попробовать mysqli: функцию multi_query()

или

Есть другой способ сделать это с помощью exec и команды mysql.

Вы можете выполнить команду mysql для сохранения таблиц в базе данных, используя функцию exec php.

Это будет что-то вроде этого

 $Command = "mysql -u {$username} -p{$password} {$database} < {$BackupFile}";
exec($Command);
  

Комментарии:

1. Спасибо, я использую multi_query () в противном случае мне пришлось исправить путь к mysql в Windows, чтобы exec работал должным образом.

Ответ №2:

Это будет сложное решение, но вы можете разбить весь sql-файл из символов «;», если у вас нет данных, содержащих символы ; в нем. Если это так, сначала будет сложно избежать их.

Например:

 $lines = file_get_contents("your_sql_dump");
$lines = explode(";", $dumpSql);
foreach($lines as $line) {
    mysql_query($line, $conn);
}