#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);
}