WordPress Database Interaction Guide:Masterwpdb
クラスおよびデータベースの操作スキル
WordPressには、多数のデータベースインタラクション関数が付属しています。ただし、特にカスタムテーブルを扱う場合は、WordPressネイティブ機能では達成できないことを行う必要がある場合があります。 WP_Query
wp_insert_post
update_post_meta
get_posts
このチュートリアルでは、WordPressデータベースインタラクションの最も重要なクラスを詳細に調べ、いくつかの開発のヒントを共有します。カスタムテーブルを作成するために使用される
wpdb
dbDelta
クラスや関連関数を含むさまざまなデータベース相互作用関数を提供します。ただし、より複雑なニーズのために、開発者は
WP_Query
wpdb
wpdb
、prefix
、insert
メソッドを提供します。これは、update
やget_row
などの方法を扱う場合に特に重要です。 query
wpdb
テーブルに保存します。 prepare
query
get_results
dbDelta
options
を使用しています
クラスの基本的な方法とプロパティについて詳しく説明しており、ここでは繰り返されません。 WordPress開発者が犯す一般的な間違い、それらを修正する方法、およびクラスを使用する際のベストプラクティスに焦点を当てます。 wpdb
一部の開発者は、テーブルプレフィックスが変更されず、デフォルト値wpdb
を使用しないと想定しています。次のコードスニペットには、間違ったアプローチが表示されます:wpdb
wpdb
属性を使用して簡単に解決できます。
global $wpdb; $result = $wpdb->get_results('SELECT * FROM wp_posts LIMIT 10');
のプロパティを使用して直接アクセスできます。各WordPressデフォルトのテーブルは、wpdb
クラスの同じ名前のプロパティ(プレフィックスを除く)で表されます。たとえば、テーブルのプレフィックスがwpdb
:wp_
と仮定します
$wpdb->posts
テーブルwp_posts
に対応しています
$wpdb->postmeta
テーブルwp_postmeta
に対応しています
$wpdb->users
テーブルwp_users
に対応しています
global $wpdb; $result = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'posts LIMIT 10');
メソッドは任意のSQLクエリを処理できますが、
、query
、insert
などのより適切な補助メソッドを使用することをお勧めします。これらの方法は、脱出やその他の基礎となる仕事がすでにそれらによって処理されているため、より具体的で安全です。 update
get_row
デフォルトでは、エラーレポートがオフになります。
エラーレポートのステータスを切り替える2つの方法を提供します:(on)およびwpdb
(off)。 $wpdb->show_errors();
と$wpdb->hide_errors();
の両方がWP_DEBUG
に設定されている場合、WP_DEBUG_DISPLAY
メソッドは自動的に呼び出されます。 true
メソッドは、エラーレポートのステータスに関係なく、最後のクエリのエラーを表示します。すべてのデータベースクエリ、実行時間、およびshow_errors
クラスの$wpdb->print_error();
属性にwp-config.php
属性にSAVEQUERIES
を保存するwpdb
inqueries
inprint_r( $wpdb->queries );
を有効にします。このデータは、
潜在的な攻撃からクエリを保護します
コードをSQLインジェクション攻撃から完全に保護するために、wpdb
は、逃げる必要があるSQLステートメント文字列とデータを受信するprepare
メソッドも提供します。これは、query
やget_results
などの方法を扱う場合に非常に重要です。
global $wpdb; $result = $wpdb->get_results('SELECT * FROM ' . $wpdb->posts . ' LIMIT 10');
prepare
メソッドは、2つの構文をサポートしています:sprintf
とvsprintf
。
別のデータベースに接続します
デフォルトでは、$wpdb
変数はwpdb
クラスのインスタンスであり、wp-config.php
で定義されたWordPressデータベースに接続されています。別のデータベースと対話する場合は、別のデータベースをインスタンスすることができます。クラスインスタンスをインスタンスできます。 wpdb
クラスのコンストラクターは、ユーザー名、パスワード、データベース名、およびデータベースホストの4つのパラメーターを受け入れます。 wpdb
$wpdb->prepare( $sql, $format... );
変数で$wpdb
メソッドを使用します。 select
$mydb = new wpdb( 'username', 'password', 'my_database', 'localhost' );
カスタムデータベーステーブルを使用してください
WordPressデフォルトテーブルは、通常、最も複雑な操作を処理するのに十分です。カスタム記事タイプ、記事メタデータ、カスタム分類法、および用語メタデータを使用すると、カスタムテーブルを使用せずにほとんど何でもできます。ただし、プラグインで処理されたデータをより詳細に制御すると、カスタムテーブルが役立ちます。カスタムテーブルの利点には、データ構造の完全な制御、懸念の分離、効率が含まれます。
dbDelta
を使用しています
を使用することをお勧めします。 WordPress Coreは、この関数を使用して、バージョン間のデータベーススキーマの更新を処理します。 dbDelta
global $wpdb; $result = $wpdb->get_results('SELECT * FROM wp_posts LIMIT 10');
plugin_loaded
WordPressは、単純なWebサイトの作成に限定されず、完全に機能するアプリケーションフレームワークに急速に進化しています。拡張WordPressは、カスタム投稿タイプとカスタム分類法に優先順位を付ける必要があります。ただし、データのより詳細な制御が必要な場合、
などの機能とクラスが非常に重要です。
wpdb
以上がWordPressでデータベースを操作しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。