0

我有任何用于从表的字段创建备份的 sql 命令,我在 phpmyadmin 中使用这个 bewlow 命令:

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;

这可以正常工作,但是在将此命令运行到 az 之类的 php 代码中之后:

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 个查询运行,而不是像您那样运行一个大量查询。你需要把它分解。

$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 回答