13

PHPスクリプトからwhere句を使用してMySQLテーブルの一部の行をエクスポートするにはどうすればよいですか?

MySQLのsayテストがあり、PHPスクリプトを使用して、idが10〜100の行のインポート可能な.sqlファイルを作成したいと思います。

MySQLデータベースにインポートできるtest.sqlなどのSQLファイルを作成したいと思います。

マイコード:

$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が発生します。
私のスクリプトは、列名とテーブルがクエリを実行または挿入する行を含むファイルのみを作成します。

4

4 に答える 4

16

コメントで述べたように、次の方法で 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');
于 2013-03-08T05:36:43.420 に答える
1

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

次に、このファイルをインポートします。

これがうまくいくことを願っています...

于 2013-03-08T05:38:05.870 に答える