Query_Builder_Where class
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 |
Parameters |
Param |
Type |
Default |
Description |
$column |
mixed |
required |
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 |
Returns the current instance. |
Example |
// 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 |
Parameters |
Param |
Type |
Default |
Description |
$column |
string |
required |
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 |
Returns the current instance. |
Example |
// 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 |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
// 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 |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
// 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 |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
// 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 |
Parameters |
None
|
Returns |
Returns the current instance. |
Example |
// 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 |
Parameters |
Param |
Type |
Default |
Description |
$column |
string |
required |
Column name |
$direction |
string |
null |
Can be set to 'asc' or 'desc'. |
|
Returns |
Returns the current instance. |
Example |
// 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 |
Parameters |
Param |
Type |
Default |
Description |
$number |
int |
required |
The number of rows |
|
Returns |
Returns the current instance. |
Example |
// prepare a select statement
$query = DB::select('*')->from('users');
// Set the limit
$query->limit(10);
// SELECT * FROM `users` LIMIT 10
|