【问题标题】:Which conditions apply to dbdelta column names when creating a table?创建表时哪些条件适用于 dbdelta 列名?
【发布时间】:2014-12-20 04:25:33
【问题描述】:

听说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, ' 在第 3 行附近"

只是为了好玩,我将列名组更改为 grou,然后收到另一条错误消息:

“您的 SQL 语法有错误;请查看手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'desc VARCHAR(255) NULL, mety VARCHAR(7), date ' 在第 6 行附近"

我将“desc”更改为“des”,突然它起作用了。我真的很高兴它终于奏效了,但我仍然想知道为什么它不适用于列名“group”和“desc”。有谁知道吗?

【问题讨论】:

    标签: php mysql wordpress plugins


    【解决方案1】:

    这是一个很晚的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() 完全不能使用保留名称,所以如果你想使用它就必须更改它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多