サポート » プラグイン » プラグイン有効化の際にテーブルを追加したい

  • 現在 私は卒業研究としてワードプレスのプラグインの作成に挑戦しています。
    そこでプラグイン有効化の際にデーターベースを作成そのデータベースを介して動かす物にしようと思いテーブルの作成方法を調べ実行してみましたがphpmyadminの方に反映されず行き詰っています
    正直どこかおかしいところはないか?という検討すらつかない状態なので参考そして改変したソースを付けておきますのでご指摘お願い致します
    //プラグイン有効化のフック処理
    function gps_plugin_activate() {
    gps_setup_table(‘gps’);
    }
    register_activation_hook(__FILE__, ‘gps_plugin_activate’);
    //テーブル作成処理
    function gps_setup_table($table_name) {
    global $wpdb;
    if ($wpdb->get_var(“show tables like'” . table_name_with_prefix($table_name) . “‘”) != table_name_with_prefix($table_name)) {
    require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
    $sql_create_func = “sql_create_$table_name”;
    $sql = $sql_create_func();
    dbDelta($sql);
    }
    }
    //prefixテーブルを関数化
    function table_name_with_prefix($table_name) {
    global $wpdb;
    return $wpdb->prefix . $table_name;
    }
    function sql_create_gps(){
    return “CREATE TABLE” . table_name_with_prefix(‘gps_events’) . “(
    gps_id INT NOT NULL AUTO_INCREMENT,
    gps_begin DATE NOT NULL,
    gps_end DATE NOT NULL,
    gps_title VARCHAR(255) NOT NULL,
    gps_desc TEXT NOT NULL,
    gps_added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (gps_id)
    );”;
    phpは5.3.8
    mysqlは5.5.16を使用しています

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    ちょっとしたケアレスミスな感じかと。

    return "CREATE TABLE" . table_name_with_prefix('gps_events') . "(
    return "CREATE TABLE " . table_name_with_prefix('gps_events') . "(

    何処まで処理が進んでいるかの確認や、どのようなSQLが発行されているか画面に出力し、SQLはphpMyAdmin上で実行させてみてテストすると良いです。

    トピック投稿者 gpabi

    (@gpabi)

    お返事有り難うございます
    1人で悩んでいて詰まった時にアドバイスをくださる方がいるというだけで安心します!
    その点きちんと修正して再度試してみたいと思います

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「プラグイン有効化の際にテーブルを追加したい」には新たに返信することはできません。