PHP PDO-语法问题

PHP PDO-语法问题,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,最近,我开始与某人的库合作,该库利用了一些现代的PHP5特性,并引入了这种奇怪的新PDO语言,显然,在这种语言中,您不可能以通常的方式解决SQL问题 以下是被拒绝的生成的SQL语句: INSERT INTO "eve"."utilRegisterKey" ("activeAPIMask","isActive","keyID","vCode") VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE "activeAPIMask"=VALUES("activeAPIMas

最近,我开始与某人的库合作,该库利用了一些现代的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)

我没有理由认为图书馆有错,它似乎是由一位专家写的。那么会出什么问题呢?

您不能将表名或列标识符用引号括起来。要么使用记号,要么什么都不使用

INSERT INTO eve.utilRegisterKey (activeAPIMask,isActive,keyID,vCode)


不能将表名或列标识符用引号括起来。要么使用记号,要么什么都不使用

INSERT INTO eve.utilRegisterKey (activeAPIMask,isActive,keyID,vCode)


哇,原来是图书馆!这太疯狂了。@1当然不是库,那是MySQL。标识符用反引号或不引号引起来。从不使用单引号或双引号。我的意思是(我可能错了)我正在使用的库似乎用引号将表括起来,如:
“插入到“%1$s”。%2$s%3$s”(%4$s)值%5$s(在重复键更新%6$s时),
看起来可能是在生成查询时删除这些引号,或者是编写错误的。我怀疑是后者。事实上你们的答案都不正确。我是他正在使用的库的作者,我在MySQL中使用ANSI模式,这需要MySQL遵守ANSI SQL引用规则,或者至少接近ANSI SQL。他使用的课程我没有设置导致问题的模式。你可以在魔兽世界中找到更多关于MySQL模式的信息,所以它就是这个库!这太疯狂了。@1当然不是库,那是MySQL。标识符用反引号或不引号引起来。从不使用单引号或双引号。我的意思是(我可能错了)我正在使用的库似乎用引号将表括起来,如:
“插入到“%1$s”。%2$s%3$s”(%4$s)值%5$s(在重复键更新%6$s时),
看起来可能是在生成查询时删除这些引号,或者是编写错误的。我怀疑是后者。事实上你们的答案都不正确。我是他正在使用的库的作者,我在MySQL中使用ANSI模式,这需要MySQL遵守ANSI SQL引用规则,或者至少接近ANSI SQL。他使用的课程我没有设置导致问题的模式。有关MySQL模式的更多信息,请访问