У меня есть тест mysql table say, и я хочу создать импортируемый файл .sql для строк, где id составляет от 10 до 100, используя php-скрипт.
Я хочу создать файл sql, скажем test.sql, который можно импортировать в базу данных mysql.
Mycode:
$con=mysqli_connect("localhost", "root","","mydatabase"); $tableName = 'test'; $backupFile = '/opt/lampp/htdocs/practices/phpTest/test.sql'; $query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName WHERE id BETWEEN 10 AND 500"; $result = mysqli_query($con,$query);
Это создает файл test.sql, но когда я пытаюсь импортировать его, появляется ошибка # 1064. Мой скрипт создает только файл с строками с именем столбцов и таблицей sturcute или insert query.
Как упоминалось в комментариях, вы можете использовать mysqldump следующим образом.
mysqldump --user=... --password=... --host=... DB_NAME --where=<YOUR CLAUSE> > /path/to/output/file.sql
Если вы хотите, чтобы это было в вашем php-файле, вы можете сделать следующее
exec('mysqldump --user=... --password=... --host=... DB_NAME --where=<YOUR CLAUSE> > /path/to/output/file.sql');
Очень просто перейдите в свой phpMyAdmin, выберите базу данных, чьи конкретные строки вы хотите экспортировать, нажмите «SQL» (для запуска SQL-запросов / запросов в базе данных). Напишите SQL-запрос и выполните его. Как выберите * из предела тестовой таблицы 500, результат пришел. На нижнем уровне см. «Операции с результатами запроса», просто нажмите « Экспорт»
Все сделано 🙂
Если вы экспортировали данные с помощью OUTFILE, вам необходимо импортировать их с помощью команды INFILE COMMAND
$con=mysqli_connect("localhost", "root","","mydatabase"); $tableName = 'test'; $backupFile = '/opt/lampp/htdocs/practices/phpTest/test.sql'; $query = "LOAD DATA INFILE '$backupFile' INTO TABLE $tableName"; $result = mysqli_query($con,$query);
ИЛИ вы можете сделать csv-файл, используя
$con=mysqli_connect("localhost", "root","","mydatabase"); $tableName = 'test'; $backupFile = '/opt/lampp/htdocs/practices/phpTest/test.sql'; $query = 'SELECT * INTO OUTFILE '."'$backupFile'".' FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '.'\'"\' LINES TERMINATED BY \'\n\' FROM '.$tableName.' WHERE id BETWEEN 10 AND 500'; $result = mysqli_query($con,$query);
а затем импортировать этот файл.
Надеюсь, это сработает …