我发现了一些东西,包括我认为可以纠正你的问题的东西。(顺便说一句,你应该尝试并简化你的初始尝试,这样你就可以区分哪些有效,哪些无效。对于初始尝试来说,这真的很复杂。)
有一件事,您将很难将字段命名为timestamp
, 因为timestamp
是SQL字段类型。所以当你有timestamp DATE NOT NULL
实际上,它会混淆它,因为它会抛出两个SQL字段类型,而不是字段标题/名称。实际上,我注意到这一点是因为SUBLIME文本3中的颜色格式-两者都是timestamp
和DATE
都是一样的颜色。
此外,根据法典:
字段类型必须全部为小写(https://codex.wordpress.org/Creating_Tables_with_Plugins)
下面是我对代码的重写尝试:
function core_createdb() {
global $wpdb;
$table_name = $wpdb->prefix . \'core_logs\';
$wpdb_collate = $wpdb->get_charset_collate();
$sql =
"CREATE TABLE $table_name (
time_stamp date NOT NULL,
logid int NOT NULL AUTO_INCREMENT,
userid int DEFAULT NULL,
actiontype tinytext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT \'undefined\',
userip varchar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT \'unknown\',
actioncontent varchar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
botactioncomment varchar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
botactionmade boolean DEFAULT 0 NOT NULL,
flaglevel tinyint(4) DEFAULT 0 NOT NULL,
PRIMARY KEY (logid),
KEY useridkey (userid)
) $wpdb_collate;";
require_once(ABSPATH . \'wp-admin/includes/upgrade.php\');
dbDelta($sql);
$success = empty($wpdb->last_error);
return $success;
}
// Create Database
add_action( \'init\', \'core_createdb\' );