我已经在phpmyadmin中测试了这个查询&它准确地返回了我所看到的内容,for...it复制了row1,并将标题更新为重复。
$sql = "CREATE TEMPORARY TABLE tmp
SELECT `unit_id`,
`title`,
`status_id`,
`category_id`,
`tags`,
`access_id`
FROM unit_genData
WHERE `unit_id`='1';
ALTER TABLE tmp
DROP COLUMN `unit_id`;
UPDATE tmp
SET `title` = 'DUPLICATE';
INSERT INTO unit_genData
SELECT 0,tmp.*
FROM tmp;
DROP TABLE tmp;";然后我去把它添加到php页面,然后.
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALTER TABLE tmp DROP COLUMNunit_id; UPDATE tmp ' at line 10
我为什么要犯这个错误?
发布于 2014-11-07 05:25:21
使用mysqli_multi_query()执行多个查询。
$sql = "CREATE TEMPORARY TABLE tmp
SELECT `unit_id`,
`title`,
`status_id`,
`category_id`,
`tags`,
`access_id`
FROM unit_genData
WHERE `unit_id`='1';
ALTER TABLE tmp
DROP COLUMN `unit_id`;
UPDATE tmp
SET `title` = 'DUPLICATE';
INSERT INTO unit_genData
SELECT 0,tmp.*
FROM tmp;
DROP TABLE tmp;";
$mysqli->multi_query($sql);发布于 2014-11-07 05:25:49
默认情况下,PHP在一个查询中禁用多个语句。
要么分别运行这两个语句,要么使用mysql_multi_query。
http://php.net/manual/en/mysqli.quickstart.multiple-statement.php
(问题没有指定使用了哪个MySQL接口。)
请注意,如果您的代码存在SQL注入漏洞,那么启用每个查询的多个语句可能会打开整船邪恶的大门.阿拉-鲍比桌子http://xkcd.com/327/。
发布于 2014-11-07 05:27:44
如果您出于某种原因使用mysql函数,则将CLIENT_MULTI_STATEMENTS作为mysql_connect的第5个参数来允许查询中的多个语句。
更多信息,here。
https://stackoverflow.com/questions/26794619
复制相似问题