0

テーブルのフィールドからバックアップを作成するためのSQLコマンドがあり、phpmyadminで次のコマンドを使用しています。

SQL:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM sale_khomsi;
UPDATE tmptable_1 SET id= NULL , faal= 1;
INSERT INTO sale_khomsi SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

これは正しく機能しますが、このコマンドをphpコードで実行した後のaz:

PHP:

$reslut=mysql_query("CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM sale_khomsi;
UPDATE tmptable_1 SET id= NULL , faal= 1;
INSERT INTO sale_khomsi SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;");

動作していません。

MYSQLのPHPMYADMINへの結果:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM sale_khomsi;# 4 rows affected.
UPDATE tmptable_1 SET id= NULL , faal= 1;# 4 rows affected.
INSERT INTO sale_khomsi SELECT * FROM tmptable_1;# 4 rows affected.
DROP TEMPORARY TABLE IF EXISTS tmptable_1;# MySQL returned an empty result set (i.e. zero rows).
4

2 に答える 2

2

mysqlでマルチクエリを実行するためのオプションはありません。しかし、mysqliに行くなら、それはそこにあります。

mysqli_multi_query()

しかし、mysqlを使用したい場合は、これらの種類のものの手順に進むことができることを意味するだけです。

于 2013-02-22T05:00:49.477 に答える
1

phpMyAdminは;を使用します データベースへの呼び出し間の区切り文字として。したがって、phpMyAdminにその文字列を入力すると、4つのクエリが実行されますが、1つの大規模なクエリは実行されません。あなたはそれを分解する必要があります。

$result = mysql_query("CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM sale_khomsi");

$result = mysql_query("UPDATE tmptable_1 SET id= NULL , faal= 1");  

$result = mysql_query("INSERT INTO sale_khomsi SELECT * FROM tmptable_1");

$result = mysql_query("DROP TEMPORARY TABLE IF EXISTS tmptable_1");

それはあなたに望ましい結果を与えるはずです。もちろん、クエリが成功したことを確認するために結果の結果をチェックする必要があります。

于 2013-02-22T05:00:58.477 に答える