Wordpress在激活时不创建数据库表

时间:2014-11-25 09:01:35

标签: php wordpress wordpress-plugin

$table_name = $wpdb->prefix . 'offline_card';

// function to create the DB / Options / Defaults                   
function offline_card_install() {
    global $wpdb;
    global $table_name;

    // create the ECPT metabox database table
    if($wpdb->get_var("show tables like '$table_name'") != $table_name) 
    {
        $sql = "CREATE TABLE $table_name (
        `id` mediumint(9) NOT NULL AUTO_INCREMENT,
        `order_id` int NOT NULL,
        `card_number` varchar(55) NOT NULL,
        `card_expiry` varchar(55) NOT NULL,
        `card_ccv` varchar(22) NOT NULL,
                 UNIQUE KEY id (id)
        );";

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

    }
}
// run the install scripts upon plugin activation
register_activation_hook(__FILE__,'offline_card_install');

我不明白它是不是在插件激活上创建数据库表的原因是什么。它没有显示任何错误。

2 个答案:

答案 0 :(得分:0)

您检查过$ table_name变量是否会返回任何内容?

答案 1 :(得分:0)

您的代码看起来不错。可能是您的变量$ table_name问题。将其写入函数并尝试一次:

function offline_card_install() {
global $wpdb;
$table_name = $wpdb->prefix . 'offline_card';
相关问题