我一直在研究这个问题,但似乎找不到任何在国内外都有重复问题的机构。
我正在尝试将以下查询与PHP&库MySQLi:
INSERT INTO table ('第1列','第2列')VALUES (数据,数据),(数据,数据)等......
最初我确实使用了一个有效的循环+预处理语句,但是大型操作需要很长时间才能完成。在MySQL工作台或MySQL shell中测试查询得到了积极的结果;但是,当我通过PHP MySQLi运行查询时:查询会产生错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得正确的语法 '169,52,“4149510311f84bb30843290286df7538c8dd3c1b”附近,), (第27,52行,第189行“189d985be0d562a3bcb”
我检索了查询以及错误,将其复制到MySQL Workbench或手动进入shell,查询将起作用。查询本身如下:
INSERT INTO update_que(component_ID,user_ID,hash)VALUES (169,52,“4149510311f84bb30843290286df7538c8dd3c1b”), (27,52,“189d985be0d562a3bcbe520ce6b6229fad0002b3”), (152,52,“4149510311f84bb30843290286df7538c8dd3c1b”), (51,52,“7e00272b49e77a7951a500fc8d239688966cd16a”), (120,52,“1a3926c99e745ffab069aaf51b610a474f3282fa”), (43,42,“7e00272b49e77a7951a500fc8d239688966cd16a”), (14,52,“7e00272b49e77a7951a500fc8d239688966cd16a”), (14,52,“7e00272b49e77a7951a500fc8d239688966cd16a”), (71,52,“4149510311f84bb30843290286df7538c8dd3c1b”), (161,52,“4149510311f84bb30843290286df7538c8dd3c1b”)ON DUPLICATE KEY UPDATE hash = VALUES(hash);
我在这里不知所措,因为我的语法似乎很好,特别是如果我可以从两个不同的来源执行它。我还确保我的平台在测试期间是最新的(CentOS 6.4 with PHP 5.3.3和MySQL 5.1.73)。
所以现在我只能认为它必须是特定于PHP实现的一些明显的语法错误,我只是遗漏或许显而易见。有什么建议吗?