我听说dbdelta非常挑剔,本网站描述了最重要的条件:http://codex.wordpress.org/Creating_Tables_with_Plugins
我尝试在wordpress数据库中创建一个自定义表,并使用var_dump($wpdb->last_error);
进行调试。
这是我收到的错误消息:
“您的SQL语法有错误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 'group VARCHAR(30)NULL,cat VARCHAR(30)NULL,'at line 3“
附近
为了好玩,我将列名组更改为grou,然后我收到了另一条错误消息:
“您的SQL语法有错误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 'desc VARCHAR(255)NULL,mety VARCHAR(7),date'at line 6“
附近
我将“desc”更改为“des”并突然之间有效。我真的很高兴它终于奏效但我仍然想知道为什么它不适用于列名“group”和“desc”。有人知道吗?
答案 0 :(得分:0)
这是 little 很晚,但你所遇到的问题与dbDelta()
大多无关。
在MySQL中,group
和desc
是关键字:http://dev.mysql.com/doc/refman/5.6/en/keywords.html。如果你想使用这些名字,你必须用反引号(``)引用它们。但是,使用不同的名称通常更容易,因为否则您每次使用它们时都必须引用它们。
但是,使用dbDelta()
...
- 您不得在字段名称周围使用任何撇号或反引号。
(根据 http://codex.wordpress.org/Creating_Tables_with_Plugins)。
因此,您无法使用保留名称dbDelta()
,因此如果您想使用它,则必须更改它们。