Query_Builder_Where クラス
The Query_Builder_Where class handles the conditioning and limiting logic for query building.
Every kind of where statement (including BETWEEN and IN etc...) is handled here. This class is not instantiated (it's
abstract) but extended by other classes that share the same functions. These classes are:
Please note: Since Query_Builder_Where is extended by the classes listed above, the "current instance" returned will be one of those.
where()
The where method is an alias for and_where.
and_where($column, $op = null, $value = null)
The and_where method appends a WHERE statement.
Static |
No |
パラメータ |
パラメータ |
型 |
規定値 |
説明 |
$column |
mixed |
必須 |
Column name or array($column, $alias), object, or callback |
$op |
string |
null
|
Logic operator: =, !=, IN, BETWEEN and LIKE. If none is provided this will fallback to '=' |
$value |
string |
null
|
Column value |
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set the first where statement
$query->where('name', '!=', 'John');
// and append a new condition
$query->and_where('surname', 'Doe');
// nested where through callback
$query->where(function($query){
$query->where('email', 'jim@jim.com')
->or_where('email', 'haha@joke.com');
});
// Resulting in:
// SELECT * FROM `users` WHERE `name` != "John" AND `surname` = "Doe"
// AND (`email` = "jim@jim.com" OR `email` = "haha@joke.com")
|
or_where($column, $op = null, $value = null)
The or_where method appends an OR WHERE statement.
Static |
No |
パラメータ |
パラメータ |
型 |
規定値 |
説明 |
$column |
string |
必須 |
Column name or array($column, $alias), object or callback |
$op |
string |
null
|
Logic operator: =, !=, IN, BETWEEN. If none is provided this will fallback to '=' |
$value |
string |
null
|
Column value |
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set the first where statement
$query->where('name', '=', 'John');
// and append a new condition
$query->or_where('surname', 'Doe');
// nested where through callback
$query->or_where(function($query){
$query->where('email', 'jim@jim.com')
->and_where('id', 4);
});
// Resulting in:
// SELECT * FROM `users` WHERE `name` != "John" OR `surname` = "Doe"
// OR (`email` = "jim@jim.com" AND `id` = 4)
|
where_open()
The where_open method is an alias for and_where_open.
and_where_open()
The and_where_open method opens an SQL closure and appends it using AND.
Static |
No |
パラメータ |
None
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set a where statement
$query->where('name', 'john');
// Open a closure
$query->and_where_open();
// SELECT * FROM `users` WHERE `name` = "John" AND (
|
or_where_open()
The or_where_open method opens an SQL closure and appends it using OR.
Static |
No |
パラメータ |
None
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set a where statement
$query->where('name', 'john');
// Open a closure
$query->or_where_open();
// SELECT * FROM `users` WHERE `name` = "John" OR (
|
where_close()
The where_close method is an alias for and_where_close.
and_where_close()
The and_where_close method closes an SQL closure.
Static |
No |
パラメータ |
None
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set a where statement
$query->where('email', 'like', '%@example.com');
// Open a closure
$query->and_where_open();
// Set a where statement
$query->where('name', 'John');
$query->or_where('surname', 'Doe');
$query->and_where_close();
// SELECT * FROM `users`
// WHERE `email` LIKE "%example.com" AND (`name` = "John" OR `surname` = "Doe")
|
or_where_close()
The or_where_close method closes an SQL closure.
Static |
No |
パラメータ |
None
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set a where statement
$query->where('email', 'like', '%@example.com');
// Open a closure
$query->or_where_open();
// Set a where statement
$query->where('name', 'John');
$query->and_where('surname', 'Doe');
$query->or_where_close();
// SELECT * FROM `users` WHERE `email` LIKE "%example.com" OR (`name` = "John" AND `surname` = "Doe")
|
order_by($column, $direction = NULL)
The order_by method sets the order for the result/execution.
Static |
No |
パラメータ |
パラメータ |
型 |
規定値 |
説明 |
$column |
string |
必須 |
Column name |
$direction |
string |
null |
Can be set to 'asc' or 'desc'. |
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set the order by
$query->order_by('name');
$query->order_by('email', 'asc');
$query->order_by('surname', 'desc');
// SELECT * FROM `users` ORDER BY `name`, `email` ASC, `surname DESC
|
limit($number)
The limit method limits the number of rows selected/affected.
Static |
No |
パラメータ |
パラメータ |
型 |
規定値 |
説明 |
$number |
int |
必須 |
The number of rows |
|
返り値 |
Returns the current instance. |
例 |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set the limit
$query->limit(10);
// SELECT * FROM `users` LIMIT 10
|