SQL是一种相当变化无常的语法,不确定它是否会产生影响,但请尝试在前面添加缺少的空格(并从末尾删除:
$sql = "CREATE TABLE " . $table_name . " (
id BIGINT(25) NOT NULL AUTO_INCREMENT,
time datetime DEFAULT \'0000-00-00 00:00:00\' NOT NULL,
videoname VARCHAR(255) NOT NULL,
video-des VARCHAR(255) NOT NULL,
UNIQUE KEY id (id)
)";
另一件事我想知道是否允许连字符。
video-des
, 因为大多数表名使用
_
这让我想。。。这个答案似乎表明,只有用正确的引号括起来才可以,例如,反勾号不是单引号,因此您可能无论如何都要更改它,以避免将来出现问题:
https://stackoverflow.com/questions/3168644/can-a-table-field-contain-a-hyphen
(虽然它指的是表名而不是列键名,所以对此并不完全确定。)
在任何情况下,都可以检查dbDelta
这可能会给你一个更好的主意。由于重定向,您可能无法在激活期间看到结果,因此我将其写入一个文件:
$result = dbDelta($sql);
ob_start(); print_r($result);
file_put_contents(get_template_directory().\'/dbdebug.txt\',ob_get_contents());
ob_end_clean();