get_data

(CDBT 2.0.0)

get_data指定のテーブルから任意のデータを取得します

Description

mixed get_data ( string $table_name [, mixed $columns"*", array $conditions, string $operator"and", array $orderarray( "created" => "DESC" ), int $limit, int $offset, string $output_type"OBJECT" ] )
指定のテーブルから任意のデータを取得します。このメソッドは完全一致条件でのデータ検索を行い、結果を配列で返します。最終的なテーブルデータの取得処理はWordPressの$wpdb->get_results()のラッパーになります。

Parameters

table_name
データを取得するテーブル名。
columns
取得するカラム名。複数カラムのデータを取得する場合はカラム名をカンマ区切りの文字列として指定するか、もしくはカラム名の配列で指定します。省略時の初期値は”*“となり、すべてのカラムが対象になります。

カラム名の指定順がそのまま取得データの配列の要素順になります。
conditions
データの取得条件。カラム名をキーとする連想配列で指定します。複数の条件がある場合、すべての条件はoperatorで指定された演算子で連結されます。
operator
条件結合演算子。複数のconditionsがある場合にそれぞれの条件を連結するための演算子を指定します。省略時の初期値は”AND“です。指定できる値は”AND“と”OR“のみで、無効な値を指定した場合は”AND“となります。バージョン2.1.31で追加されました。
order
取得データのソート順序。カラム名をキーとする連想配列で指定します。値には昇順(ASC)か降順(DESC)のどちらかを指定します。複数指定した場合は、配列要素の順序がソートの優先順になります。
limit
取得データ数の上限値。
offset
取得データの開始オフセット値。limitが指定されている場合のみ有効となります。
output_type
取得データの戻り値となる配列の型。初期値は”OBJECT“で、配列内の要素がPHPのオブジェクト型(stdClass Object)となります。指定できる型はWordPressの$wpdb->get_results()の定義値に準じます。

指定できる型:
  • OBJECT ─ 数値添字配列の要素としてオブジェクトが格納されている型
Array (
  [0] => stdClass Object (
    [ID] => 4
    [created] => 2016-02-11 09:58:07
    [updated] => 2016-02-11 09:58:07
  )
  [1] => stdClass Object (
    [ID] => 2
    [created] => 2016-02-11 09:57:38
    [updated] => 2016-02-11 09:57:38
  )
)
  • OBJECT_K ─ 最初のカラムの値をキーとした連想配列の要素にオブジェクトが格納されている型(キーが重複した場合は破棄される)
Array (
  [4] => stdClass Object (
    [ID] => 4
    [created] => 2016-02-11 09:58:07
    [updated] => 2016-02-11 09:58:07
  )
  [2] => stdClass Object (
    [ID] => 2
    [created] => 2016-02-11 09:57:38
    [updated] => 2016-02-11 09:57:38
  )
)
  • ARRAY_A ─ 数値添字配列の要素がカラム名をキーとした連想配列型
Array (
  [0] => Array (
    [ID] => 4
    [created] => 2016-02-11 09:58:07
    [updated] => 2016-02-11 09:58:07
  )
  [1] => Array (
    [ID] => 2
    [created] => 2016-02-11 09:57:38
    [updated] => 2016-02-11 09:57:38
  )
)
  • ARRAY_N ─ すべて数値添字形式の2次元配列型
Array (
  [0] => Array (
    [0] => 4
    [1] => 2016-02-11 09:58:07
    [2] => 2016-02-11 09:58:07
  )
  [1] => Array (
    [0] => 2
    [1] => 2016-02-11 09:57:38
    [2] => 2016-02-11 09:57:38
  )
)

Return

取得データはoutput_typeに応じた型の配列で返されます。条件に合致するデータがない場合は空の配列が返ります。なお、指定したテーブルが存在しない場合にはFALSEが返ります。

History

バージョン 内容
2.0.0 CDBT v1の同名メソッドをリファクタリング
2.1.31 パラメータにoperatorを追加

Example

例1 WordPressにログインしているユーザーのデータのみを取得する。

<?php
if ( ! is_admin() && is_user_logged_in() ) {
  global $cdbt;
  $current_user = wp_get_current_user();
  $table_name = "prefix_table";
  $data = $cdbt->get_data( $table_name, '*', [ 'user_id' => $current_user->ID ] );
  print_r( $data );
}

例2 条件に合致するデータ数を取得する。

<?php
  global $cdbt;
  $table_name = "prefix_table";
  $data = $cdbt->get_data( $table_name, 'count(*)', [ 'gender' => 'male' ], "ARRAY_N" );
  $total_data = ! empty( $data ) ? intval( $data[0][0] ) : 0;
  echo "Matched data is $total_data.";
}

例3 任意のソート順のデータを10件のみ取得して一覧表として出力する。

<?php
  global $cdbt;
  $table_name = "prefix_table";
  $data = $cdbt->get_data( $table_name, 'name,gender,age', [], 'and', [ 'age' => 'ASC' ], 10, 0 );
  $_list = [];
  foreach ( $data as $_datum ) {
    $_line = '<tr>';
    foreach ( $_datum as $_key => $_value ) {
      $_line .= '<td>' . $_value . '</td>';
    }
    $_line .= '</tr>';
    $_list[] = $_line;
  }
  echo '<table>' . implode( '', $_list ) . '</table>';

Included Hooks

Reference

Related Methods

  • find_data()指定されたキーワードを含むデータを検索します

Related Codex