php - 用于使用插件创建表格的 Wordpress 法典?

标签 php mysql wordpress plugins

所以它说我必须在 PRIMARY KEY 之间放置一个双空格。这是否意味着我必须在 PRIMARYKEY 之间放置一个双空格。另外,将它也放在 PRIMARY KEY 的定义之间是什么意思?谢谢!

  • 您必须将每个字段放在 SQL 语句中的单独一行。
  • 在 PRIMARY KEY 和主键定义之间必须有两个空格。
  • 您必须使用关键字 KEY 而不是其同义词 INDEX,并且您必须至少包含一个 KEY。
  • 您不得在字段名称周围使用任何撇号或反引号。
  • 字段类型必须全部小写
  • SQL 关键字,如 CREATE TABLE 和 UPDATE,必须大写。

global $wpdb;

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
  id mediumint(9) NOT NULL PRIMARY KEY 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)

) $charset_collate;";

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

最佳答案

这是一个很好的问题,不,PRIMARY KEY 之间不需要额外的空格。 dbDelta() 函数对于用作参数的 SQL 语句可能不稳定,因此不要像通常那样使用 PRIMARY KEY 声明。声明主键 (PRIMARY KEY),然后定义 (id)。您应该按如下方式添加主键:

global $wpdb;

$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
  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,
  PRIMARY KEY  (id)
) $charset_collate;";

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

关于php - 用于使用插件创建表格的 Wordpress 法典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135373/

相关文章:

javascript - 单击“阅读更多”按钮时每个帖子的 WordPress 模式

javascript - 通过将鼠标悬停在导航菜单上使页面变暗

php - 以逗号分隔的字符串分割并在 MySQL 和 PHP 中显示

php - 在 PDO::bindValue() 中使用显式数据类型有什么意义?

Mysql 查询 where condition with Date 不等于 '0000-00-00'

php - Laravel - 如何通过 hasMany 中的相关属性进行排序

php - 如何防止跨域ajax请求?

php - MySQL - 如何连续排序两列?

php - 从远程 mysql 数据库检索图像到 android

javascript - 等待它解析promise,然后插入MySQL