我在这里看了很多关于这个问题的其他问题,但到目前为止还没有人能够解决我的问题。
根据dbDelta上的codex。 SQL语句必须:
您必须在SQL语句中将每个字段放在自己的行中。
PRIMARY KEY和之间必须有两个空格 主键的定义。
您必须使用关键字KEY而不是其同义词INDEX和您 必须包含至少一个KEY。
您不得在字段名称周围使用任何撇号或反引号。
字段类型必须全部小写。 SQL关键字(如CREATE TABLE和UPDATE)必须为大写。
我收到的错误消息是:
WordPress database error: [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 '(
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NUL' at line 1]
但在我看来,我的SQL语句符合dbDelta的要求。 NB 变量$ table_name和$ charset_collate在函数的前面定义。
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
statistics longblob NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
答案 0 :(得分:0)
这个怎么样:
$sql = "CREATE TABLE " . $table_name. " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
statistics longblob NOT NULL,
PRIMARY KEY (id)
) " . $charset_collate . ";";