Как экспортировать несколько строк таблицы mysql с предложением where из php-скрипта?

У меня есть тест 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); 

а затем импортировать этот файл.

Надеюсь, это сработает …