最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

customization - Adding a Table to the wordpress database

programmeradmin0浏览0评论

I am using the following script to add a table to the wordpress database, but nothing is happening. I am not sure what I am doing wrong.

Any advice would be much appreciated.

     function vw_postcode_checker_create_db ()
    {
        global $wpdb;
      global $tableprefix;

        // Create Table Name
        $table_name =$tableprefix . "vw_postcode_checker";

        // Write Query to add table to database
        if ($wpdb->get_var('SHOW TABLES LIKE'.$table_name) !=$table_name)
        {
                $sql = "CREATE TABLE " . $table_name . " (
                    id INTEGER(10) UNSIGNED AUTO_INCREMENT,
                    postcode  varchar(250)   NOT NULL,
                    area varchar(250)   NOT NULL
                    PRIMARY KEY (id)
                )";
    // Execute Query to Create Table
    require_once (ABSPATH . 'wp-admin/includes/upgrade.php');
                dbDelta($sql);
                add_option ('vw_postcode_checker_version', '0.1');
        }
        }
// Register table function
register_activation_hook (__FILE__,'vw_postcode_checker_create_db');

I am using the following script to add a table to the wordpress database, but nothing is happening. I am not sure what I am doing wrong.

Any advice would be much appreciated.

     function vw_postcode_checker_create_db ()
    {
        global $wpdb;
      global $tableprefix;

        // Create Table Name
        $table_name =$tableprefix . "vw_postcode_checker";

        // Write Query to add table to database
        if ($wpdb->get_var('SHOW TABLES LIKE'.$table_name) !=$table_name)
        {
                $sql = "CREATE TABLE " . $table_name . " (
                    id INTEGER(10) UNSIGNED AUTO_INCREMENT,
                    postcode  varchar(250)   NOT NULL,
                    area varchar(250)   NOT NULL
                    PRIMARY KEY (id)
                )";
    // Execute Query to Create Table
    require_once (ABSPATH . 'wp-admin/includes/upgrade.php');
                dbDelta($sql);
                add_option ('vw_postcode_checker_version', '0.1');
        }
        }
// Register table function
register_activation_hook (__FILE__,'vw_postcode_checker_create_db');
Share Improve this question asked May 23, 2020 at 18:19 Victoria WhiteheadVictoria Whitehead 336 bronze badges 0
Add a comment  | 

1 Answer 1

Reset to default 2

Try:

function vw_postcode_checker_create_db () {
    global $wpdb;

    // Create Table Name
    $table_name = $wpdb->prefix . "vw_postcode_checker";

    // Write Query to add table to database
    if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE $table_name (
            id INTEGER(10) UNSIGNED AUTO_INCREMENT,
            postcode  varchar(250) DEFAULT ''  NOT NULL,
            area varchar(250) DEFAULT ''  NOT NULL,
            PRIMARY KEY (id)
         );";
        // Execute Query to Create Table
        require_once (ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
        add_option ('vw_postcode_checker_version', '0.1');
    }
}
// Register table function
register_activation_hook (__FILE__,'vw_postcode_checker_create_db');

Note the use of $wpdb->prefix and the closures after PRIMARY KEY (id)

https://codex.wordpress/Creating_Tables_with_Plugins

发布评论

评论列表(0)

  1. 暂无评论