web-dev-qa-db-fra.com

La création de table avec plugin ne fonctionne pas

Après avoir lu de nombreuses questions et réponses et que beaucoup avaient posé la même question, je suivais les mêmes instructions que les personnes instruites, mais mon problème, cela ne fonctionne pas, je les utilise

  • dbDelta ($ sql)
  • $ wpdb-> query ($ sql)

Ça ne fonctionne pas

exemple de code

<?php
/*
Plugin Name: ContactUs
Plugin URI: 
Description: Simple Plugin Developed for Testing purpose
Version: 1.0.0
Author: rajeshw
Author URI: codelisense.com
*/  

//Creating table
    function contact_installation(){
        global $wpdb;
        $table_name = $wpdb->prefix. "contactus";

        if($wpdb->get_var ('SHOW TABLES LIKE' .$table_name ) != $table_name){
            $sql= "CREATE TABLE" .$table_name. "(
                   id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
                   firstname VARCHAR(30) NOT NULL,
                   lastname VARCHAR(30) NOT NULL,
                   email VARCHAR(50),
                   reg_date TIMESTAMP
                   )";
            require_once (ABSPATH. 'wp-admin/includes/upgrade.php' );
            $wpdb->query($sql);

            //had replaced the above line with this line
            dbDelta($sql);
        }
    }
    register_activation_hook(__FILE__, 'contact_installation');

La table n'est pas créée ... Aide s'il vous plaît

1
lost_in_magento

Votre notation de point et de citation est géniale. Essaye ça:

if($wpdb->get_var("SHOW TABLES LIKE '$table_name'" ) != $table_name){
    $sql= "CREATE TABLE $table_name (
           id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
           firstname VARCHAR(30) NOT NULL,
           lastname VARCHAR(30) NOT NULL,
           email VARCHAR(50),
           reg_date TIMESTAMP
           );";
    require_once (ABSPATH. 'wp-admin/includes/upgrade.php' );
    dbDelta($sql);
}
4
shanebp

Essayez ce code.

Créez un fichier comme "my_db.php" et collez ce code:

global $table_version;
$table_version = "1.0";

function func_table_contactus(){
    creat_table_contactus();
}

function creat_table_contactus(){
    global $wpdb;
    global $table_version;

    $table_contactus = $wpdb->prefix."contactus";
    $slider_ver = get_option("table_version");

    $check_table_contactus = $wpdb->get_var("SHOW TABLES LIKE '$table_contactus'");

    if($check_table_contactus != $table_contactus ||  $slider_ver != $table_version ) {
         $sql= "CREATE TABLE" .$table_name. "(
                   id INT(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
                   firstname VARCHAR(30) NOT NULL,
                   lastname VARCHAR(30) NOT NULL,
                   email VARCHAR(50),
                   reg_date TIMESTAMP
           PRIMARY KEY (id)
               )";

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

    update_option("table_version", $table_version);
    }
    else{
        add_option("table_version", $table_version);
    }

}

et dans votre fichier principal de plugin

<?php
/*
Plugin Name: ContactUs
Plugin URI: 
Description: Simple Plugin Developed for Testing purpose
Version: 1.0.0
Author: rajeshw
Author URI: codelisense.com
*/  

require "my_db.php";
    add_action('plugins_loaded', 'func_table_contactus');

J'espère que vous trouverez votre solution

2
deemi-D-nadeem