FuelPHP の Query_Builder_Where
クラスは、データベースクエリを構築する際に、WHERE 句に関する条件や制限を設定するためのロジックを扱う抽象クラスです。直接インスタンス化することはできず、以下のクエリビルダークラスに継承されてその機能を提供します。
Query_Builder_Select
Query_Builder_Update
Query_Builder_Delete
これらのクラスが Query_Builder_Where
を継承しているため、SELECT、UPDATE、DELETE クエリに対して WHERE 条件を適用する際に、共通のメソッドを利用できます。
Query_Builder_Where
クラスが提供する主要なメソッドは、WHERE 句を追加するためのものです。以下に代表的なものを挙げます。
メソッド | 説明 |
---|---|
where | WHEREステートメントを追加する。 |
and_where | WHEREステートメントを追加する。 |
or_where | OR WHEREステートメントを追加する。 |
and_where のエイリアスです。
where($column, $op = null, $value = null)
WHERE ステートメントを AND で結合して追加します。
and_where($column, $op = null, $value = null)
=
, !=
, IN
, BETWEEN
, LIKE
などの論理演算子を指定する。省略された場合は =
がデフォルトとなる。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")