未安装数据库的数据库增量

时间:2015-05-24 作者:DCo

我不知道为什么它没有运行。当我输出dbDelta时,它说它创建了表,但它没有。

我认为我的SQL是有效的。去掉id和UNIQUE KEY之间的所有内容将导致生成表,但我看不出其他行有什么问题。

谢谢

function email_install () {
   global $wpdb;

   $table_name = $wpdb->prefix . "table_name_email"; 

   $charset_collate = $wpdb->get_charset_collate();

   $sql = "CREATE TABLE " . $table_name . " (
     id INT NOT NULL AUTO_INCREMENT,
     time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
     email VARCHAR NOT NULL,
     page VARCHAR NOT NULL,
     UNIQUE KEY  (id)
   ) ". $charset_collate . ";";

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

}

1 个回复
SO网友:Domain

sql查询中有错误。您已经将时间定义为datetime和current\\u timestamp中提到的默认值。将时间定义为时间戳。还指定电子邮件和页面字段的长度。

已更正的查询:

$sql = "CREATE TABLE " . $table_name . " (
     id INT NOT NULL AUTO_INCREMENT,
     time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, //Change datetime to timestamp
     email VARCHAR(50) NOT NULL, //Change length
     page VARCHAR(50) NOT NULL, //Change length
     UNIQUE KEY  (id)
   ) ". $charset_collate . ";";

结束

相关推荐

WPDB Table Does Not Exist

根据此代码:global $wpdb; $sidebar_table = $wpdb->prefix . \'w3care_sidebar_position\'; $checkad = $wpdb->get_results( $wpdb->prepare( \"SELECT ad_id, sidebar_position, ad_type FROM `%s` WHERE page_id = \'11646\' AND page_type=\'page\'\",$side