2015-09-27 1 views
0

Je faisais un plugin complètement à partir de zéro récemment, j'ai essayé de faire une table sur l'activation du plugin et j'ai réussi dans le même, mais maintenant je veux faire plus d'une table sur le plugin activer, mais je n'obtiens pas le résultat attendu.Faire deux ou plusieurs tables sur l'activation du plugin wordpress

En ne faisant qu'une table sur deux, voici mon code ci-dessous.

// 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); 
       }   
} 

Ce code ne fait qu'une seule table qui est la dernière "* prefix_myemail". S'il vous plaît me suggérer ou écrivez-moi le code précis pour corriger ce problème.

Votre aide est appréciée à l'avance ..

Répondre

0

peut être la clé vous avez oublié primaire de la table myentries, essayez d'ajouter la clé primaire comme ce

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); 
} 
+0

merci pour la réponse mais je ne Je ne veux pas le donner ou déclarer le même champ que la clé primaire. –