为什么这段代码不向我的数据库添加一个表呢?

时间:2014-04-01 作者:Richard Smith

为了切中要害,我正在尝试在安装插件时添加一个数据库表。这是我的代码:

global $scimp_db_version;
$scimp_db_version = "1.0";

function scimp_install () {

global $wpdb;

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

$sql = "CREATE TABLE $table_name (
        id int NOT NULL AUTO_INCREMENT,
        feedurl text NOT NULL,
        category text NOT NULL,
        );";

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

add_option("scimp_db_version", $scimp_db_version);

}

register_activation_hook( __FILE__, \'scimp_install\' )
不用说,这是行不通的。未创建表。我希望在看了太久之后,我错过了一些简单的东西。有人看到这里有什么不对吗?

1 个回复
最合适的回答,由SO网友:Shazzad 整理而成

必须使用单列或多列为表定义键。因此,在您的代码中,需要一行sqlKEY id (id) -

$sql = "CREATE TABLE $table_name (
    id int NOT NULL AUTO_INCREMENT,
    feedurl text NOT NULL,
    category text NOT NULL,
    KEY  id (id)
);";

结束

相关推荐

在unctions.php中运行MySQL代码后出现成功或错误消息

就本文而言,假设有一段代码要在我的WordPress函数上运行。php文件。这是在我的数据库中删除mysql表的代码。例如,下面是代码:$wpdb->query( \" DELETE FROM $wpdb->posts WHERE anything = \'whocares\' \" ); 代码正常,但我想在运行代码后显示成功或失败的消息。我还有一个代码,显示运行后的成功消息,如下所示:function remove_contributors() {