WordPress.org

言語:英語※Italiano•。Русский•中文(简体)•中文(繁體)•한국어•(追加-言語)

WordPressを定義するクラスと呼ばれwpdbに記載されております設定の機能を使うと、データベースです。 その主な目的は、WordPressのデータベースとのインターフェイスを提供することですが、他の適切なデータベースと通信するために使用することができます。 クラスのソースコードは、ezSQLクラスに大まかに基づいています; Warning wpdbオブジェクト

を使用してJustin Vincent

によって書かれ、保守されています警告:wpdb()クラスのメソッドは直接呼び出すべきではありません。 代わりにglobal$wpdbオブジェクトを使用してください。 WordPressにはグローバルオブジェクト変数$wpdbが用意されており、これは/wp-includes/wp-dbで定義されているwpdbクラスのインスタンス化です。php。 デフォルトでは、$wpdbはWordPressデータベースと通信するためにインスタンス化されます。 WordPress PHPコードで$wpdbにアクセスするには、global keywordを使用して$wpdbをグローバル変数として宣言するか、次の方法でスーパーグローバル$GLOBALSを使用します:

// 1st Method - Declaring $wpdb as global and using it to execute an SQL query statement that returns a PHP objectglobal $wpdb;$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );// 2nd Method - Utilizing the $GLOBALS superglobal. Does not require global keyword ( but may not be best practice )$results = $GLOBALS->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );

$wpdbオブジェクトは、WordPressによって作成されたデフォルトのテーブルに限定されず、WordPressデータベース内の任意のテーブル(カスタムプラグインテーブルなど)からデー たとえば、”mytable”というカスタムテーブルからいくつかの情報を選択するには、次のようにします。

$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );

$wpdbオブジェクトは、任意の数のテーブルと通信できますが、一度に一つのデータベースのみと通信できます。 まれに、別のデータベースに接続する必要がある場合は、独自のデータベース接続情報を使用してwpdbクラスから独自のオブジェクトをインスタンス化する必 多くのデータベースで非常に複雑な設定を行う場合は、代わりにhyperdbを使用することを検討してください。

警告

このクラスの関数の中には、SQL文を入力として使用するものがあります。 SQLインジェクション攻撃を防ぐには、SQLクエリに組み込む信頼されていない値をすべてSQLエスケープする必要があります。 ドキュメントを確認して、escapes SQLを使用する予定の関数か、事前にエスケープされることを期待しているかどうかを確認してください。

WordPressでのSQLエスケープの詳細については、以下のSQLインジェクション攻撃に対するクエリの保護の項を参照してください。

変数を選択

get_var関数はデータベースから単一の変数を返します。 返される変数は1つだけですが、クエリの結果全体は後で使用するためにキャッシュされます。 結果が見つからない場合はNULLを返します。

<?php $wpdb->get_var( 'query', column_offset, row_offset ); ?>

query(string)実行するクエリ。 このパラメーターをnullに設定すると、前のクエリのキャッシュされた結果から指定された変数が返されます。 column_offset(integer)目的の列(0が最初の列)。 デフォルトは0です。 row_offset(integer)目的の行(0が最初の行)。 デフォルトは0です。

ユーザー数を取得して表示します。

<?php$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );echo "<p>User count is {$user_count}</p>";?>

カスタムフィールド値の合計を取得して表示します。

<?php// set the meta_key to the appropriate custom field meta key$meta_key = 'miles';$allmiles = $wpdb->get_var( $wpdb->prepare( "SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key) );echo "<p>Total miles is {$allmiles}</p>";?> 

行を選択

クエリから行全体を取得するには、get_rowを使用します。 この関数は、行をオブジェクト、連想配列、または数値インデックス付き配列として返すことができます。 クエリによって複数の行が返された場合、指定された行のみが関数によって返されますが、すべての行は後で使用するためにキャッシュされます。 結果が見つからない場合はNULLを返します。引数で戻り値を使用する場合は、これを考慮してください。以下の例を参照してください。

<?php $wpdb->get_row('query', output_type, row_offset); ?>

query(string)実行するクエリ。 output_type事前定義された3つの定数のうちの1つ。 デフォルトはOBJECTです。

  • OBJECT-結果はオブジェクトとして出力されます。
  • ARRAY_A-結果は連想配列として出力されます。
  • ARRAY_N-結果は数値インデックス付き配列として出力されます。

row_offset(integer)目的の行(0が最初の行)。 デフォルトは0です。

リンク10に関するすべての情報を取得します。

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10" );

$mylinkオブジェクトのプロパティは、SQLクエリの結果の列名です(この例では、$wpdb->linksテーブルのすべての列ですが、特定の列のみをクエリすることもできます)。対照的に、

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A );

を使用すると連想配列になります:

echo $mylink; // prints "10"

そして、

$mylink = $wpdb->get_row( "SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N );

は数値的にインデックス付きの配列になります:

echo $mylink; // prints "10"

リンクテーブルにID10のレコードがない場合は、nullが返されます。 次はfalseになります:

if ( null !== $mylink ) { // do something with the link return true;} else { // no link found return false;}

列を選択する

列を選択するには、get_colを使用します。 この関数は、1次元配列を出力します。 クエリによって複数の列が返された場合、指定された列のみが関数によって返されますが、結果全体は後で使用するためにキャッシュされます。 結果が見つからない場合は、空の配列を返します。

<?php $wpdb->get_col( 'query', column_offset ); ?>

query(string)実行するクエリ。 このパラメーターをnullに設定すると、前のクエリのキャッシュされた結果から指定された列が返されます。 column_offset(integer)目的の列(0が最初の列)。 デフォルトは0です。

この例では、ブログが自動車に関する情報に専念していると仮定します。 各ポストは、特定の車(例えば、1969フォードマスタング)を説明し、三つのカスタムフィールド、メーカー、モデル、および年は、各ポストに割り当てられています。 この例では、特定の製造元(Ford)でフィルター処理され、モデルと年でソートされた投稿タイトルが表示されます。

wpdbクラスのget_col形式は、基準を満たし、正しい順序でソートされたすべての投稿idの配列を返すために使用されます。 次に、foreach構造を使用して、その投稿idの配列を反復処理し、各投稿のタイトルを表示します。 この例のSQLはAndomarによって作成されたものであることに注意してください。

<?php $meta_key1= 'model';$meta_key2= 'year';$meta_key3= 'manufacturer';$meta_key3_value= 'Ford';$postids=$wpdb->get_col( $wpdb->prepare( "SELECT key3.post_idFROM $wpdb->postmeta key3INNER JOIN $wpdb->postmeta key1 ON key1.post_id = key3.post_id AND key1.meta_key = %s INNER JOIN $wpdb->postmeta key2 ON key2.post_id = key3.post_id AND key2.meta_key = %sWHERE key3.meta_key = %s AND key3.meta_value = %sORDER BY key1.meta_value, key2.meta_value",$meta_key1, $meta_key2, $meta_key3, $meta_key3_value) ); if ( $postids ) {echo "List of {$meta_key3_value}(s), sorted by {$meta_key1}, {$meta_key2}";foreach ( $postids as $id ) { $post = get_post( intval( $id ) );setup_postdata( $post );?><p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p><?php} }?>

この例では、特定のカスタムフィールドを含むが、2番目のカスタムフィールドの値でソートされたすべての投稿を一覧表示します。

<?php// List all posts with custom field Color, sorted by the value of custom field Display_Order// does not exclude any 'post_type'// assumes each post has just one custom field for Color, and one for Display_Order$meta_key1 = 'Color';$meta_key2 = 'Display_Order';$postids = $wpdb->get_col( $wpdb->prepare( "SELECT key1.post_idFROM $wpdb->postmeta key1INNER JOIN $wpdb->postmeta key2 ON key2.post_id = key1.post_id AND key2.meta_key = %sWHERE key1.meta_key = %sORDER BY key2.meta_value+(0) ASC", $meta_key2,$meta_key1) ); if ( $postids ) {echo "List of {$meta_key1} posts, sorted by {$meta_key2}";foreach ( $postids as $id ) {$post = get_post( intval( $id ) );setup_postdata( $post );?><p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p><?php}}?>

SELECT Generic Results

Genericでは、get_resultsを使用して複数の行の結果をデータベースから引き出すことができます。 この関数は、クエリ結果全体を配列として返します。 この配列の各要素は、クエリ結果の1つの行に対応し、get_rowのように、オブジェクト、連想配列、または番号付き配列にすることができます。 一致する行が見つからない場合、またはデータベースエラーが発生した場合、戻り値は空の配列になります。 Query query文字列が空の場合、または無効なoutp output_typeを渡した場合、NULLが返されます。

<?php $wpdb->get_results( 'query', output_type ); ?>

query(string)実行するクエリ。 output_type4つの事前定義された定数のうちの1つ。 デフォルトはOBJECTです。 詳細については、”行の選択とその例”を参照してください。

  • OBJECT-結果は、rowオブジェクトの数値インデックス付き配列として出力されます。
  • OBJECT_K-結果は、最初の列の値をキーとして使用して、行オブジェクトの連想配列として出力されます(重複は破棄されます)。
  • ARRAY_A-結果は、列名をキーとして使用して、連想配列の数値インデックス付き配列として出力されます。
  • ARRAY_N-結果は、数値インデックス付き配列の数値インデックス付き配列として出力されます。

この関数はquery wpdb->query()関数を使用するため、すべてのクラス変数が適切に設定されています。 ‘SELECT’クエリの結果カウントは$wpdb->num_rowsに格納されます。

ユーザー5がすべての下書きのIdとタイトルを取得し、タイトルをエコーします。

$fivesdrafts = $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->postsWHERE post_status = 'draft' AND post_author = 5");foreach ( $fivesdrafts as $fivesdraft ) {echo $fivesdraft->post_title;}

ユーザー5による下書きに関するすべての情報を取得します。

<?php$fivesdrafts = $wpdb->get_results( "SELECT * FROM $wpdb->postsWHERE post_status = 'draft' AND post_author = 5");if ( $fivesdrafts ){foreach ( $fivesdrafts as $post ){setup_postdata( $post );?><h2><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permalink: <?php the_title(); ?>"><?php the_title(); ?></a></h2><?php}}else{?><h2>Not Found</h2><?php}?>

行の挿入

テーブルに行を挿入します。

<?php $wpdb->insert( $table, $data, $format ); ?>

table(文字列)データを挿入するテーブルの名前。 挿入するデータ(配列)データ(列=>値のペア)。 Data data列とdata data値は両方とも「生」である必要があります(どちらもSQLエスケープする必要はありません)。 format(array|string)(省略可能)$data内の各値にマップされる形式の配列。 文字列の場合、その形式はin dataのすべての値に使用されます。 省略された場合、wpdb::field field_typesで特に指定されていない限り、data dataのすべての値は文字列として扱われます。

使用可能な形式の値:%sは文字列、%dは整数(整数)、%fは浮動小数点数です。 (詳細については、以下を参照してください。)

挿入後、AUTO_INCREMENT列に対して生成されたIDには、次のようにアクセスできます:

$wpdb->insert_id

この関数は、行を挿入できなかった場合にfalseを返します。 それ以外の場合は、影響を受ける行の数を返します(常に1になります)。

注意:dataパラメータのcolumn=>値のペアの値部分はスカラーでなければなりません。 挿入する値として配列(またはオブジェクト)を渡すと、「mysql_real_escape_string()は、パラメータ1が/var/www/html/wp-includes/wp-dbファイルの880行目に指定された文字列、配列であることをphp”。

行に二つの列を挿入し、最初の値は文字列であり、二番目の値は数値です:

$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );

行を置換

テーブル内の行が存在する場合は置換し、行がまだ存在しない場合は新しい行をテーブルに挿入します。

<?php $wpdb->replace( $table, $data, $format ); ?>

table(文字列)データを置換するテーブルの名前。 置換するデータ(配列)データ(列=>値のペア)。 Data data列とdata data値は両方とも「生」である必要があります(どちらもSQLエスケープする必要はありません)。 format(array|string)(省略可能)$data内の各値にマップされる形式の配列。 文字列の場合、その形式はin dataのすべての値に使用されます。 省略された場合、wpdb::field field_typesで特に指定されていない限り、data dataのすべての値は文字列として扱われます。

使用可能な形式の値:%sは文字列、%dは整数(整数)、%fは浮動小数点数です。 (詳細については、以下を参照してください。)

MySql data配列パラメータ内の文字列要素の長さがMySqlデータベーステーブル内の定義された長さよりも長い場合、挿入は失敗し、この関数はfalseを返しますが、last wpdb->last_errorは 挿入するデータがデータベースに収まることを確認する必要があります-MySqlがデータを切り捨てると仮定しないでください。

置換後、AUTO_INCREMENT列に対して生成されたIDには次のようにアクセスできます:

$wpdb->insert_id

この関数は、影響を受ける行の数を示すカウントを返します。 これは、削除および挿入された行の合計です。 単一行置換のカウントが1の場合、行は挿入され、行は削除されませんでした。 カウントが1より大きい場合、新しい行が挿入される前に、1つ以上の古い行が削除されました。 テーブルに複数の一意のインデックスが含まれており、新しい行が異なる一意のインデックス内の異なる古い行の値を重複させる場合、単一の行が複数の古い行を置き換えることができます。

この関数は、既存の行を置き換えることができず、新しい行を挿入できなかった場合にfalseを返します。

行を置き換え、最初の値は行id、二番目の文字列、三番目の数値です:

$wpdb->replace( 'table', array( 'indexed_id' => 1,'column1' => 'value1', 'column2' => 123 ), array( '%d','%s', '%d' ) );

行の更新

テーブル内の行を更新します。 エラーが発生した場合はfalseを返し、成功した場合は影響を受けた行数を返します。

<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>

table(文字列)更新するテーブルの名前。 更新するデータ(配列)データ(列=>値のペア)。 Data data列とdata data値は両方とも「生」である必要があります(どちらもSQLエスケープする必要はありません)。 つまり、GETまたはPOSTデータを使用している場合は、データベース内でスラッシュが終わるのを避けるためにstripslashes()を使用する必要があるかもしれません。 where(array)WHERE句の名前付き配列(column=>値のペア内)。 複数の句はANDsで結合されます。 Where where列と$where値は両方とも「生」である必要があります。 format(array|string)(省略可能)$data内の各値にマップされる形式の配列。 文字列の場合、その形式はin dataのすべての値に使用されます。 where_format(array|string)(省略可能)where whereの各値にマップされる形式の配列。 文字列の場合、その形式はin whereのすべての項目に使用されます。

使用可能な形式の値:%sは文字列、%dは整数(整数)、%fは浮動小数点数です。 (詳細については、以下を参照してください。)省略された場合、where whereのすべての値は文字列として扱われます。

戻り値: この関数は、更新された行数を返し、エラーがある場合はfalseを返します。 Data dataがすでにデータベースにあるものと一致する場合、行は更新されないため、0が返されることに注意してください。 このため、おそらくfalseで戻り値をチェックする必要があります===result result

Examples

行を更新します。IDは1、最初の列の値は文字列、2番目の列の値は数値です:

$wpdb->update( 'table', array( 'column1' => 'value1',// string'column2' => 'value2'// integer (number) ), array( 'ID' => 1 ), array( '%s',// value1'%d'// value2), array( '%d' ) );

注意:%dはカンマ値を扱うことができません-完全な数値を使用していない場合は、string/%sを使用してください。

行の削除

delete関数はWordPress3.4.0で追加され、テーブルから行を削除するために使用できます。 使用法はupdateとinsertと非常によく似ています。 更新された行数を返すか、エラーの場合はfalseを返します。

<?php $wpdb->delete( $table, $where, $where_format = null ); ?>

パラメータ

table table(string)(必須)テーブル名。 デフォルト:None$where(array)(必須)WHERE句の名前付き配列(列->値のペア)。 複数の句はANDsで結合されます。 Where where列と$where値は両方とも’raw’でなければなりません。 デフォルト: None$where_format(string/array)(省略可能)$whereの各値にマップされるフォーマットの配列。 文字列の場合、その形式はin whereのすべての項目に使用されます。 形式は’%d’,’%f’,’%s’のいずれかです(整数、浮動小数点数、文字列;詳細については以下を参照してください)。 省略された場合、wpdb::field field_typesで特に指定されていない限り、where whereのすべての値は文字列として扱われます。 デフォルト:null

// Default usage.$wpdb->delete( 'table', array( 'ID' => 1 ) );// Using where formatting.$wpdb->delete( 'table', array( 'ID' => 1 ), array( '%d' ) );

一般クエリの実行

query関数を使用すると、WordPressデータベース上で任意のSQLクエリを実行できます。 これは、特定の、カスタム、またはその他の複雑なSQLクエリが必要な場合に最適です。 テーブルから情報を選択するなど、より基本的なクエリについては、get_results, get_var, get_row or get_colなどの上記の他のwpdb関数を参照してください。

一般的な構文

<?php $wpdb->query('query'); ?>

query(string)実行するSQLクエリ。

この関数は、SELECT、INSERT、DELETE、UPDATEなどで影響を受けた/選択された行の数を示す整数値を返します。 CREATE、ALTER、TRUNCATE、およびDROP SQLステートメント(特定の行ではなくテーブル全体に影響します)の場合、この関数は成功するとTRUEを返します。 MySQLエラーが発生した場合、関数はFALSEを返します。 行クエリでは0とFALSEの両方が返される可能性があるため、戻り値を確認する際には注意が必要です。 Id演算子(===)を使用して、エラー(例:false===$result)、および行が影響を受けたかどうか(例:0===$result)を確認します。

ポスト13から’gargle’メタキーと値を削除します。 (不正な操作や不正な文字を処理していないことを確認するために、’prepare’メソッドを追加します):

$wpdb->query( $wpdb->prepare( " DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", 13, 'gargle' ));

delete_post_meta()によるワードプレスで実行されます。

15ページの親を7ページに設定します。

$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %dWHERE ID = %dAND post_status = %s", 7, 15, 'static') );

Sqlインジェクション攻撃からクエリを保護

WordPressでのSQLエスケープのより完全な概要については、”データベースデータの検証”を参照してください。 これは、すべてのWordPressのコードの貢献者とプラグインの作成者のための必読です。

SQLインジェクション攻撃を防ぐために、SQLクエリを実行する前に、SQLクエリ内のすべてのデータをSQLエスケープする必要があります。 prepareメソッドは、sprintf()のような構文とvsprintf()のような構文の両方をサポートするWordPressのためにこの機能を実行します。

ご注意ください:3.5の時点で、wpdb::prepare()は、最小2つの引数を強制します。

<?php $sql = $wpdb->prepare( 'query' , value_parameter ); ?>

query(string)プレースホルダを使用して実行するSQLクエリ(以下を参照)。 value_parameter(int|string|array)プレースホルダーに代入する値。 多くの値は、sprintf()のような方法でより多くの引数を渡すだけで渡すことができます。 または、2番目の引数は、PHPのvsprintf()関数のように値を含む配列にすることもできます。 複数のプレースホルダを持つクエリの配列操作を可能にするこのパラメータへの直接のユーザー入力を許可しないように注意する必要があります。 値をSQLエスケープすることはできません。

プレースホルダ

prepareのクエリパラメータはsprintf()のようなプレースホルダを受け入れます。 %S(文字列)、%d(整数)、および%f(浮動小数点数)の形式がサポートされています。 (%Sと%dプレースホルダは、バージョン2.3でcoreに関数が追加されてから使用可能になりました。%fはバージョン3.3以降のみ使用可能になりました。%fはバージョン3.3以降のみ使用可能になりました。%fはバージョン3.3以降のみ使用できます。)その他の%文字は、エスケープされない限り解析エラーが発生する可能性があります。 ワイルドカードなどのSQL文字列リテラル内のすべての%文字は、%%としてdouble-%エスケープする必要があります。 %D、%f、および%sはすべて、クエリ文字列で引用符で囲まれていないままにします。 カンマ値が必要な場合は、代わりに%fをfloatとして使用してください。%dプレースホルダは整数のみを受け入れるため、%dを介してカンマ値を持つ数値を渡すことはできません。%dプレースホルダが必要な場合は、%fをfloatとして使用してください。

メタキーを追加=>値のペア”ハリエットのAdages”=>”WordPressのデータベースインターフェイスは、日曜日の朝のようなものです:簡単。”を10月に発売する。

$metakey= "Harriet's Adages";$metavalue= "WordPress' database interface is like Sunday Morning: Easy.";$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )", 10, $metakey, $metavalue ) );

add_meta()

vsprintf()のような構文を使用した同じクエリ。

$metakey = "Harriet's Adages";$metavalue = "WordPress' database interface is like Sunday Morning: Easy.";$wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->postmeta( post_id, meta_key, meta_value )VALUES ( %d, %s, %s )", array(10, $metakey, $metavalue) ) );

この例では、値を配列にまとめていることに注意してください。 これは、実行時まで渡す必要がある引数の数がわからない場合に便利です。

文字列を引用することを心配する必要はないことに注意してください。 変数をSQLクエリに直接渡す代わりに、文字列には%sプレースホルダー、整数には%dplacedolder、浮動小数点数のプレースホルダーとして%fを使用します。 各値は、prepare()メソッドの新しいパラメータとして、好きなだけ渡すことができます。

SQLエラーの表示と非表示

それぞれshow_errorshide_errorsでエラーエコーのオンとオフを切り替えることができます。

<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>

最新のクエリによって生成されたエラー(存在する場合)をprint_errorで出力することもできます。

<?php $wpdb->print_error(); ?>

注:WordPressマルチサイトを実行している場合は、データベースエラーが次のように表示されるようにDIEONDBERROR定数を定義する必要があります:
<?php define( 'DIEONDBERROR', true ); ?>

列情報の取得

最新のクエリ結果の列に関する情報を取得するには、get_col_infoを使用します。 これは、プロパティがわからないオブジェクトを関数が返したときに便利です。 関数は、指定された列から必要な情報を出力するか、列が指定されていない場合は、クエリ結果からすべての列に関する情報を含む配列を出力します。

<?php $wpdb->get_col_info('type', offset); ?>

取得する情報を入力(文字列)します。 次のいずれかの値を取ることができます(ezSQL docsから取得したリスト)。 デフォルトはnameです。

  • 名前-列の名前。 デフォルト。
  • table-列が属するテーブルの名前
  • max_length-列の最大長
  • not_null-1列がNULLにできない場合
  • primary_key-1列が主キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1列が一意キーの場合
  • unique_key-1 8930>multiple_key-1列が一意でないキーの場合
  • numeric-1列が数値の場合
  • blob-1列がblobの場合
  • type-列の型
  • unsigned-1列がunsignedの場合
  • zerofill-1列がゼロで埋められた場合
  • zerofill-1列がゼロで埋められた場合
  • zerofill-1列がゼロで埋められた場合
  • zerofill-1列がゼロで埋められた場合
  • zerofill-1列がゼロで埋められた場合
  • zerofill-1 3202>

offset(integer)情報を取得する列を指定します(最初の列は0です)。 デフォルトは-1です。

  • -1-すべての列から情報を取得します。 配列として出力します。 デフォルト。
  • 非負整数-指定された列(0が最初)から情報を取得します。

キャッシュのクリア

SQL結果キャッシュをクリアするには、flushを使用します。

<?php $wpdb->flush(); ?>

これにより、$wpdb->last_result$wpdb->last_query、および$wpdb->col_infoがクリアされます。

クラス変数

Error show_errorsエラーエコーがオンになっているかどうか。 デフォルトはTRUEです。 $num_queries実行されたクエリの数。 last last_query実行された最新のクエリ。 last last_error MySQLによって生成された最新のエラーテキスト。 $クエリSAVEQUERIES定数をTRUE(この定数のデフォルトはFALSE)に設定することで、データベースで実行されるすべてのクエリとその停止時間を保存できます。 SAVEQUERIESがTRUEの場合、クエリはこの変数に配列として格納されます。 last last_result最新のクエリ結果。 $col_info最新のクエリ結果の列情報。 “列情報の取得”を参照してください。 AUTO insert_id最新のINSERTクエリによってAUTO_INCREMENTカラム用に生成されたID。 last num_rows最後のクエリによって返された行の数。 $prefixサイトに割り当てられたWordPressテーブルの接頭辞。 wp base_prefix wp-configで定義されている元の接頭辞。php。 マルチサイトの場合:ブログ番号を追加せずに接頭辞を取得する場合に使用します。

マルチサイト変数

マルチサイトを使用している場合は、次のアクセス権もあります。

$blogid現在のサイト(ブログ)のid。 $siteid現在のネットワーク(以前は”サイト”)のid。 WordPressは現在、マルチサイトインストールごとに1つのネットワークしかサポートしていませんが、将来的に変更される可能性があります。 詳細については、以下を参照してください。

  • WordPress:site_idとblog_idの違い?
  • http://stackoverflow.com/a/4189358/1924128 – 同じ質問に対するもう一つの良い答え。

テーブル

ワードプレスのデータベーステーブルはwpdbクラスで簡単に参照できます。

$posts投稿のテーブル。 $postmetaメタコンテンツ(別名カスタムフィールド)テーブル。 $commentsコメントテーブル。 $commentmetaテーブルには追加のコメント情報が含まれています。 $termmeta termmetaテーブルには、term meta値が含まれています。 $terms termsテーブルには、カテゴリ、リンクカテゴリ、タグの”説明”が含まれています。 $term_taxonomy term_taxonomyテーブルは、さまざまな分類法(用語のクラス)を記述します。 カテゴリ、リンクカテゴリ、およびタグは分類法です。 $term_relationships term relationshipsテーブルには、その用語とその用語を使用するオブジェクトとの間のリンクが含まれています。 $usersユーザーのテーブル。 us usermeta usermetaテーブルには、ニックネーム、説明、権限などの追加のユーザー情報が含まれています。 §リンクリンクの表。 オプションオプションテーブル。

マルチサイトテーブル

これらのテーブルは、マルチサイトインストールでのみ使用されます。

$blogs Blogsテーブルには、ネットワーク内に設定されている個別のブログ(サイト)のリストが含まれています。 ✓サインアップサインアップテーブル。 $siteサイトテーブルには、インストールで設定されているネットワーク(以前はWPMUでは”サイト”と呼ばれていました)のリストが含まれています(通常、この表に記載されているサイトは一つしかありません)。 $sitemetaネットワークオプション(サイトメタ)テーブルには、マルチサイトインストール全体に適用可能なオプションが含まれています。 $sitecategoriesサイトカテゴリテーブル。 registr registration_log登録ログテーブル。 Blog blog_versionsブログのバージョンテーブル。

ソースファイル

wpdb()はwp-includes/wp-db.phpにあります。

関連

  • メンバー関数:wpdb::esc_like()-SQLで使用する前に文のようにエスケープします。

記事

  • 記事:ループ-WordPressループ内でのクエリの使用の基本的な概要。
  • : クエリの概要-どのクエリがWordPressを生成するかを決定する方法の説明。
  • 記事:フックを使用したクエリのカスタマイズ
  • 記事:カスタムを使用したMYSQLクエリの表示
  • 記事:分類法に関する高度なクエリのビルド
  • 記事:オフセットとページネーションを使用したカスタムクエリのビルド

コードドキュメント

  • クラス:Wp_Query-Detailedクラスの概要wp_query
  • クラス:Wp_Comment_Query-コメント関連クエリ用のクラス
  • クラス:Wp_user_Query-ユーザー関連クエリ用のクラス
  • オブジェクト: $wpdb-$wpdbオブジェクトの使用に関する概要
  • 関数:set_query_var()
  • 関数:get_query_var()
  • 関数:query_posts()-追加のカスタムクエリを作成
  • 関数:get_post()-項目のIDを取得し、その記事のデータベース内のレコードを返す
  • 関数:get_post()-項目のIDを取得し、その記事のデータベース内のレコードを返す
  • 関数:get_post()-項目のidを取得し、その記事のデータベース内のレコードを返す
  • 関数:get_post()-項目のidを取得し、その記事のデータベース内のレコードを返す
  • 関数:get_post()3202>
  • function:get_posts()-項目の配列を返す特殊な関数
  • function:get_pages()-ページの配列を返す特殊な関数
  • function:get_posts()-項目の配列を返す特殊な関数
  • function:get_pages()-ページの配列を返す特殊な関数
  • function: have_posts()-クエリがアーティクルを返したかどうかを決定する条件
  • 関数:the_post()-クエリの後にループを自動的に設定するために使用
  • 関数:rewind_posts()-現在のループをクリア
  • 関数:setup_postdata()-ループ内の単一のクエリ結果のデータを設定する
  • 関数:wp_reset_Postdata()-前のクエリを復元します(通常は別のループ内のループの後)
  • function:wp_reset_query()
  • function: is_main_query()-変更されているクエリがメインクエリのみであることを保証します
  • アクションフック:pre_get_posts-実行される前にWordPressのクエリを変更します
  • アクショ

コメントを残す

メールアドレスが公開されることはありません。

Previous post 子供に餌を与える
Next post シカゴ-ホワイトソックス:ブラッド-ハンドは悪いピックアップではない