创建表时哪些条件适用于dbdelta列名?

时间:2014-10-24 10:23:24

标签: php mysql wordpress plugins

我听说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”。有人知道吗?

1 个答案:

答案 0 :(得分:0)

这是 little 很晚,但你所遇到的问题与dbDelta()大多无关。

在MySQL中,groupdesc是关键字:http://dev.mysql.com/doc/refman/5.6/en/keywords.html。如果你想使用这些名字,你必须用反引号(``)引用它们。但是,使用不同的名称通常更容易,因为否则您每次使用它们时都必须引用它们。

但是,使用dbDelta() ...

  
      
  • 您不得在字段名称周围使用任何撇号或反引号。
  •   

(根据 http://codex.wordpress.org/Creating_Tables_with_Plugins)。

因此,您无法使用保留名称dbDelta(),因此如果您想使用它,则必须更改它们。