克隆表行出错。你不会相信codenippet 2
抱歉。
所以,我试图在包含很多列的表中克隆一个表行。当然,我不想说出每一列的名称。 我找到了一个解决方案,并且在 mySQL WorkBench 界面(sql shell)中完美工作。在这里,我克隆 PK="TEST"的行,并且我希望结果行的 PK 为“TEST1”
CREATE TEMPORARY TABLE temp_tbl SELECT * FROM pianos WHERE pianoID = $oldPianoID;
UPDATE temp_tbl SET pianoID = '$newPianoID' WHERE pianoID = '$oldPianoID';
INSERT INTO pianos SELECT * FROM temp_tbl;
DROP TABLE temp_tbl;
但是在 php 中应用此 sql 脚本时,它失败并给出以下错误:
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 'UPDATE temp_tbl SET pianoID = 'TEST1' WHERE pianoID = 'TEST';
INSERT INTO ' at line 2
同样,这在 shell 中有效,但在我使用 PHP5 和 MariaDB 10.0.23 运行的服务器上无效
我认为使用 blob 存储的某些字段可能存在问题,但我无法理解这一点,因为它与 shell 一起使用。
我是否遗漏了一些明显的东西?
最佳答案
如果你查看错误:
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 'UPDATE temp_tbl SET pianoID = 'TEST1' WHERE pianoID = 'TEST';
INSERT INTO ' at line 2
您正在尝试一次执行 2 个查询 - 这是您无法通过标准 mysqli::query()
完成的- 您需要使用mysqli::multi_query()
相反。
关于php - 克隆表行在 php 中失败,但通过 sql shell 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920844/