web-dev-qa-db-ja.com

$ wpdb-> insertが機能しない

私はこの種の質問が何度も質問されてきたことを知っています、しかし私は私の問題に対する解決策を見つけることができなかったので、あなたが私を助けることができると思います。 WP 3.3を使用しています。そして私はカスタムテーブルを作成しました。今、私はそれにデータを挿入したいのですが、私はそれを機能させることができません。これは私のコードです:

global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
            'my_id'     => NULL,
        'my_day'    => $day,
        'my_month'  => $month,
        'my_abbr'   => $abbr,
        'my_venue'  => $venue,
        'my_geo'    => $geo_one.", ".$geo_two,
        'my_artist' => $artist,
        'my_link'   => $link
                )
                );

私は運なしで今数時間データを挿入しようとしています。私の目にはコードは正しいのですが、ここで重要なことをしているだけなのでしょう。どんなポインタでも評価されます。ありがとうございました

7
Sven

$wpdbメソッドが本来のパフォーマンスを発揮しない場合、結果のSQLクエリで問題が発生する可能性があります(入力が間違っているなどの理由で)。

トラブルシューティングのために wpdb reference in Codex に従ってください:

  • $wpdb->show_errors()でデータベースエラー表示を有効にする
  • どのクエリが形成されているのかを確認し、$wpdb->last_queryを介して実行します。
13
Rarst

Wpdbクラスには挿入がありません。あなたはクエリを使うべきではありません。コーデックスを参照してください、あなたはこの関数を見つけることはできませんinsert() - http://codex.wordpress.org/Class_Reference/wpdb

WPDBにカスタムテーブルを挿入する例。デフォルトのCREATE TABLE- SQL構文を使用して、wpdbのquery()を使用して自分の値を持つテーブルを作成します。

        $table = $GLOBALS['wpdb'] -> prefix . 'my_data';
        $GLOBALS['wpdb'] -> query(
            "CREATE TABLE $table (
            called_by varchar(96) NOT NULL,
            my_name varchar(96) NOT NULL,
            my_type varchar(15) NOT NULL,
            first_call int(11) NOT NULL,
            arg_count tinyint(4) NOT NULL,
            file_name varchar(128) NOT NULL,
            line_num smallint NOT NULL,
            PRIMARY KEY (first_call, my_name) )"
        );

このソースを挿入するにはregister_activation_hook()- hookを使います。起動時にのみ、プラグインはテーブルをインストールします(存在しない場合)。 register_uninstall_hook()では、カスタムテーブルを削除しています。

1
bueltge