在wordpress插件激活上制作两个或多个表格

Make two or more than one tables on wordpress plugin activation

我最近完全从头开始制作一个插件,我试图在插件激活时制作一个 table,我同样成功了,但现在我想制作一个以上的 table插件激活,但我没有得到预期的结果。

两个中只有一个 table,下面是我的代码。

// Registering plugin

register_activation_hook(__FILE__,'myplugin_activate'); 

function myplugin_activate() 

{

                global $wpdb;
                $table_name1 = $wpdb->prefix . "myentries";
                $table_name2 = $wpdb->prefix . "myemail";

                //installed_ver = get_option('my-voting-version');

                if( $wpdb->get_var("show tables like '$table_name1' ") != $table_name1)  
                {

                    $sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name1) . "`(
                    id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
                    name varchar(50) NOT NULL,
                    sub longtext NOT NULL,
                    message longtext NOT NULL,                   
                    );";
                    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
                    dbDelta($sql);
                }   
               if( $wpdb->get_var("show tables like '$table_name2' ") != $table_name2 )      
                {    
                    $sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name2) . "`(
                    id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
                    email varchar(50) NOT NULL,
                    PRIMARY KEY  (id)
                    );";
                    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
                    dbDelta($sql);
                }          
}

此代码只生成一个table,即最后一个“*prefix_myemail”。请给我建议或给我写准确的代码来纠正这个问题。

提前感谢您的帮助..

可能是您忘记了 myentries table 的主键, 尝试像这样添加主键

if( $wpdb->get_var("show tables like '$table_name1' ") != $table_name1)  
{

    $sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name1) . "`(
    id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL,
    sub longtext NOT NULL,
    message longtext NOT NULL,        
    PRIMARY KEY  (id)           
    );";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta($sql);
}