我写了一个插件,它创建了一个激活表。在以前的WP版本中,它工作得很好。
现在没有了。这是我的功能:
function on_activation(){
global $wpdb;
$table_name = $wpdb->prefix."tc_competition_data_all_countries_and_fields";
$sql = "CREATE TABLE $table_name (
mail VARCHAR(55),
id VARCHAR(255) NOT NULL,
time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
name VARCHAR(255) NOT NULL,
stra VARCHAR(255) NOT NULL,
ort VARCHAR(255) NOT NULL,
uid VARCHAR(255) NOT NULL,
msg VARCHAR(500) NOT NULL,
meta1 VARCHAR(500) NOT NULL,
meta2 VARCHAR(500) NOT NULL,
UNIQUE KEY id (id)
);";
#dbDelta( $sql );
$c = dbDelta( $sql );
}
它通过这个钩子得到证实:
register_activation_hook( __FILE__, array( \'tc_comp_form\', \'on_activation\' ) );
当我为
$c
, 它返回表已创建,但不存在。
可能是什么问题?
非常感谢!
最合适的回答,由SO网友:user998163 整理而成
问题出在这一行:
time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
我将其更改为:
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
,
现在,它起作用了。