web-dev-qa-db-fra.com

Problème de création de table via le code du plugin

J'utilise le code suivant pour créer la table de base de données à l'aide d'un plugin. Cependant, la table n'est ni en cours de création ni un message d'erreur. Le code est comme suit:

    global $wpdb;
    $table_name = "tbllb_club";

    $sql = "create table $table_name (
    club_id int(11) NOT NULL auto_increment,
    project_name varchar(500) NOT NULL,
    first_name varchar(100) NOT NULL,
    school_status varchar(50) NOT NULL,
    school_name varchar(200) NOT NULL,
    school_city varchar(50) NOT NULL,
    school_state varchar(50) NOT NULL,
    year_in_school varchar(50) NOT NULL,
    age int(2) NOT NULL,
    email varchar(200) NOT NULL,
    mobile varchar(15) NOT NULL,
    chat_id  varchar(50) NOT NULL,
    facebook_page_link varchar(200) NOT NULL,
    mailing_address_street varchar(50) NOT NULL,
    mailing_address_city varchar(50) NOT NULL,
    mailing_address_state varchar(50) NOT NULL,
    mailing_address_Zip char(6) NOT NULL,
    social_networking varchar(50) NOT NULL,
    organization_involvement varchar(2000) NOT NULL,
    yesclub_heard varchar(50) NOT NULL,
    volunteer_experience varchar(2000) NOT NULL,
    volunteer_reason varchar(2000) NOT NULL,
    skills varchar(2000) NOT NULL,
    creative_ideas varchar(5000) NOT NULL,
    other_information varchar(2000) NOT NULL,
    face_photo_url varchar(200),
    school_image_url varchar(200),
    video_clip_url varchar(200),
    PRIMARY KEY  (club_id)
    );";

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

J'ai suivi les règles comme mentionné le Codex Wordpress. S'il vous plaît aider! Merci d'avance.

2
Pooja

Le code ci-dessus doit être placé dans une fonction, puis accrocher avec le crochet d’activation du plug-in? Voici un exemple de structure du fichier plugin-name.php.

Remarque -

  • Utilisez CREATE TABLE IF NOT EXISTS à la place uniquement create table

Code mis à jour le - 2012-08-04

<?php // this code goes into your my_plugin_name.php file

function install_my_plugin() {

    global $wpdb;
    $table_name = "tbllb_club";

    //the SQL commands to create table
    $sql = "SQL_QUERY_1";
    $sql .= "SQL_QUERY_2";

    //this stuff is needed to create the table in MySQL database
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);

    //optional 
    add_option("my_plugin_version", "1.0");
}

//lets get it hooked to plugin activation
register_activation_hook(__FILE__,'install_my_plugin');

?>

Référence -

  • Enregistrer le crochet d'activation - Utilisez cette option pour effectuer certaines actions lorsque le plug-in est activé. Dans ce cas, nous appelons la fonction install_my_plugin() pour créer une table.
1
amit