插件在激活时不创建自定义表

时间:2015-05-13 作者:dea

正如标题所说,我有一个问题。我的插件在激活时不会创建自定义表。我的代码是:

function bsp_create_update_table() 
{

global $wpdb; //geting the acces to a wp tables
$tablename=$wpdb->prefix . "students"; //the name of a table with it\'s prefix

//checking if the table with the name we created a line above exists
if($wpdb->get_var("SHOW TABLES LIKE \'$tablename\'") != $tablename) 
 {

    //if it does not exists we create the table
    $sql="CREATE TABLE `$tablename`(
    `students_id` INT(11) NOT NULL AUTO_INCREMENT,
    `students_name` VARCHAR (50) NOT NULL,
    `students_lastname` VARCHAR (50) NOT NULL,
    `students_email` VARCHAR 850) NOT NULL, 
    `students_course` VARCHAR (100) NOT NULL,
    `students_date` DATETIME,
    PRIMARY KEY (students_id)
    );";

    //wordpress function for updating the table
    require_once(ABSPATH . \'wp-admin/includes/upgrade.php\');
    dbDelta($sql);
 }
}
我有一个这样的钩子:register_activation_hook(__FILE__, \'bsp_create_update_table\');

当插件被激活时,并没有创建任何表,我只是不知道为什么。有什么想法吗?

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

回答我的问题:这是一个拼写错误。

    `students_email` VARCHAR 850) NOT NULL, 
应为:

    `students_email` VARCHAR (50) NOT NULL, 
哦,头痛。更正错误后,将创建一个新表。

结束

相关推荐

如何在管理区的wp_list_table中添加列?

所以我的问题和你在图片中看到的差不多。在我自定义的帖子类型“Products”中,如何向我的主表添加一个额外的列,如SEO Yoast所做的WP_List_Table. 我已经计算出了代码,以确定如何显示缺货功能,这取决于项目的自定义\\u字段“缺货”是否设置为true或false。这不是问题,但我如何在代码中针对表的那个区域。我会假设它是一个过滤器,不确定它是如何工作的,但如果有人能帮助我,我真的很感激。