WP Plugin Worldはかなり新しいものです。次の方法で "wp_enam
"という名前のテーブルにデータを挿入しようとしているときに、WP 3.1でプラグインを開発しようとしています。
$wpdb->insert($wpdb->enam, array('username' => "enam" ,
'useremail' => "[email protected]"));
それは働いていません。
私は以下の方法でそれをデバッグしようとします:
$wpdb->show_errors();
$wpdb->insert($wpdb->enam, array('username' => "enam" ,
'useremail' => "[email protected]"));
$wpdb->print_error();
今私はMR.WPから次のようなメッセージを得ています
WordPress database error: [Incorrect table name '']
INSERT INTO `` (`username`,`useremail`) VALUES ('enam','[email protected]')
WordPress database error: [Incorrect table name '']
INSERT INTO `` (`username`,`useremail`) VALUES ('enam','[email protected]')
ご覧のとおり、テーブル名はmysqlクエリに表示されていません。これは$wpdb->my_table
を使ってテーブル名にアクセスする正しい方法ですか? 私はmysqlを使用しています 。前もって感謝します。
編集1: / $wpdb->tblname
はテーブルプレフィックスをもう追加しないようです! Hal Stern、David Damstra、Brad Williamsによる "Professional WordPress Wrox" (これは素晴らしい本です)上記の機能は次のようにこの本で説明されています。
$wpdb->my_custom_table to reference the table in WordPress.
This translates to wp_my_custom_table if wp_ is the table prefix.
This is the proper way to determine the correct table prefix when working with tables in the WordPress database.
( ページ:107 )
データベースのデータベース機能はここで確認できます http://codex.wordpress.org/Function_Reference/wpdb_Class 。テーブルの接頭辞については、$wpdb->prefix . 'enam'
を使用すると、テーブルの接頭辞が返されます。これでテーブル名を追加するだけです。したがって、合計コードは次のようになります。
$yourtablename = $wpdb->prefix . 'enam';
だからあなたの合計コードは次のようになります。
$wpdb->insert($yourtablename , array('username' => "enam" ,
'useremail' => "[email protected]"));
編集:あなたがより多くの情報を必要とするなら、あなたは _ this _ の記事を見ることができる。これはデータベースを使ってプラグインを作成するためのとても役に立つ記事です。
あなたはのようなものを使うべきです
$wpdb->prefix . 'table_name'
代わりに。
あなたのコードであなたのテーブル名を繰り返したくないのであれば、それを変数に保存するかこのような関数を作成してください。それは非常に多目的ではありません..)
function get_table_name() {
global $wpdb;
return $wpdb->prefix . 'table_name';
}
私はwpdb-> enamが間違っていると思います、それは存在しません、あなたはただそこにtablenameを入力しなければなりません。
$wpdb->insert("table_name", array('username' => "enam" ,
'useremail' => "[email protected]"));