FuelPHP Query_Builder_Where

FuelPHPQuery_Builder_Where クラスは、データベースクエリを構築する際に、WHERE 句に関する条件や制限を設定するためのロジックを扱う抽象クラスです。直接インスタンス化することはできず、以下のクエリビルダークラスに継承されてその機能を提供します。

これらのクラスが Query_Builder_Where を継承しているため、SELECT、UPDATE、DELETE クエリに対して WHERE 条件を適用する際に、共通のメソッドを利用できます。

メソッド

Query_Builder_Where クラスが提供する主要なメソッドは、WHERE 句を追加するためのものです。以下に代表的なものを挙げます。

Query_Builder_Whereクラスの静的メソッド一覧
メソッド 説明
where WHEREステートメントを追加する。
and_where WHEREステートメントを追加する。
or_where OR WHEREステートメントを追加する。

where

and_where のエイリアスです。

where($column, $op = null, $value = null)

and_where

WHERE ステートメントを AND で結合して追加します。

and_where($column, $op = null, $value = null)
$column
カラム名、配列 (array($column, $alias))、オブジェクト、またはコールバック関数を指定する。
$op
=, !=, IN, BETWEEN, LIKE などの論理演算子を指定する。省略された場合は = がデフォルトとなる。
$value
カラムの値を指定する。

or_where

OR WHERE ステートメントを追加します。

or_where($column, $op = null, $value = null)

// SELECT クエリの準備
$query = DB::select('*')->from('users');

// 最初の WHERE ステートメントを設定 (name != 'John')
$query->where('name', '!=', 'John');

// 新しい条件を追加 (AND surname = 'Doe')
$query->and_where('surname', 'Doe')

// ネストした WHERE をコールバックで追加
$query->where(function($query){
    $query->where('email', 'johndoe@example.com')
          ->or_where('email', 'johnsmith@example.com');
});

上記のサンプルコードは以下の SQL を作成する。

SELECT * FROM `users`
WHERE `name` != "John" AND `surname` = "Doe" AND (`email` = "johndoe@example.com" OR `email` = "johnsmith@example.com")