最近我开始使用某人的库来使用一些现代的PHP5功能,并且已经介绍了这种奇怪的新PDO语言,显然你不能以通常的方式解决SQL问题。
这是一个被拒绝的生成的SQL语句:
INSERT INTO "eve"."utilRegisterKey" ("activeAPIMask","isActive","keyID","vCode") VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE "activeAPIMask"=VALUES("activeAPIMask"),"isActive"=VALUES("isActive"),"keyID"=VALUES("keyID"),"vCode"=VALUES("vCode")
通常我会认为引号是杀死这个语句的东西,但是对于我所知道的这个PDO系统来说是“酷”的。
这是错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"eve"."utilRegisterKey" ("activeAPIMask","isActive","keyID","vCode") VALUES ('26' at line 1)
我没有理由认为图书馆存在错误,它似乎是由专家撰写的。那可能会出现什么问题?
答案 0 :(得分:4)
您无法将表名或列标识符包装在引号中。要么使用刻度线,要么根本不使用。
INSERT INTO eve.utilRegisterKey (activeAPIMask,isActive,keyID,vCode)
或
INSERT INTO `eve`.`utilRegisterKey` (`activeAPIMask`,`isActive`,`keyID`,`vCode`)