为什么我不能在wordpress中使用CREATE直接创建表

时间:2013-09-16 16:11:19

标签: mysql wordpress

$sql = "CREATE TABLE 'my_custom_table'(
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  name tinytext NOT NULL,
  text text NOT NULL,
  url VARCHAR(55) DEFAULT '' NOT NULL,
  UNIQUE KEY id (id)
);";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

这是我的代码。当我尝试执行它时会产生错误。但是,如果我用变量my_custom_table替换$table_name = 'my_custom_table';字符串,则可行。为什么?

1 个答案:

答案 0 :(得分:2)

正确的表示法是:

CREATE TABLE `my_custom_table`

单引号定义字符串。反引号转义表名。

您可以在备用版本中执行此操作:

CREATE TABLE my_custom_table

除非您的表名包含非标准字符(在A-Z,0-9或_之外),或者是保留字,否则不需要反引号。但是,如果您愿意保持一致,那么在所有情况下使用它们都是安全的。