Zend Framework
1.12
|
Public Member Functions | |
__construct (Zend_Db_Adapter_Abstract $adapter) | |
Class constructor. | |
getBind () | |
Get bind variables. | |
bind ($bind) | |
Set bind variables. | |
distinct ($flag=true) | |
Makes the query SELECT DISTINCT. | |
from ($name, $cols= '*', $schema=null) | |
Adds a FROM table and optional columns to the query. | |
columns ($cols= '*', $correlationName=null) | |
Specifies the columns used in the FROM clause. | |
union ($select=array(), $type=self::SQL_UNION) | |
Adds a UNION clause to the query. | |
join ($name, $cond, $cols=self::SQL_WILDCARD, $schema=null) | |
Adds a JOIN table and columns to the query. | |
joinInner ($name, $cond, $cols=self::SQL_WILDCARD, $schema=null) | |
Add an INNER JOIN table and colums to the query Rows in both tables are matched according to the expression in the $cond argument. | |
joinLeft ($name, $cond, $cols=self::SQL_WILDCARD, $schema=null) | |
Add a LEFT OUTER JOIN table and colums to the query All rows from the left operand table are included, matching rows from the right operand table included, and the columns from the right operand table are filled with NULLs if no row exists matching the left table. | |
joinRight ($name, $cond, $cols=self::SQL_WILDCARD, $schema=null) | |
Add a RIGHT OUTER JOIN table and colums to the query. | |
joinFull ($name, $cond, $cols=self::SQL_WILDCARD, $schema=null) | |
Add a FULL OUTER JOIN table and colums to the query. | |
joinCross ($name, $cols=self::SQL_WILDCARD, $schema=null) | |
Add a CROSS JOIN table and colums to the query. | |
joinNatural ($name, $cols=self::SQL_WILDCARD, $schema=null) | |
Add a NATURAL JOIN table and colums to the query. | |
where ($cond, $value=null, $type=null) | |
Adds a WHERE condition to the query by AND. | |
orWhere ($cond, $value=null, $type=null) | |
Adds a WHERE condition to the query by OR. | |
group ($spec) | |
Adds grouping to the query. | |
having ($cond, $value=null, $type=null) | |
Adds a HAVING condition to the query by AND. | |
orHaving ($cond, $value=null, $type=null) | |
Adds a HAVING condition to the query by OR. | |
order ($spec) | |
Adds a row order to the query. | |
limit ($count=null, $offset=null) | |
Sets a limit count and offset to the query. | |
limitPage ($page, $rowCount) | |
Sets the limit and count by page number. | |
forUpdate ($flag=true) | |
Makes the query SELECT FOR UPDATE. | |
getPart ($part) | |
Get part of the structured information for the current query. | |
query ($fetchMode=null, $bind=array()) | |
Executes the current select object and returns the result. | |
assemble () | |
Converts this object to an SQL SELECT string. | |
reset ($part=null) | |
Clear parts of the Select object, or an individual part. | |
getAdapter () | |
Gets the Zend_Db_Adapter_Abstract for this particular Zend_Db_Select object. | |
_joinUsing ($type, $name, $cond, $cols= '*', $schema=null) | |
Handle JOIN... | |
__call ($method, array $args) | |
Turn magic function calls into non-magic function calls for joinUsing syntax. | |
__toString () | |
Implements magic method. | |
Public Attributes | |
const | DISTINCT = 'distinct' |
const | COLUMNS = 'columns' |
const | FROM = 'from' |
const | UNION = 'union' |
const | WHERE = 'where' |
const | GROUP = 'group' |
const | HAVING = 'having' |
const | ORDER = 'order' |
const | LIMIT_COUNT = 'limitcount' |
const | LIMIT_OFFSET = 'limitoffset' |
const | FOR_UPDATE = 'forupdate' |
const | INNER_JOIN = 'inner join' |
const | LEFT_JOIN = 'left join' |
const | RIGHT_JOIN = 'right join' |
const | FULL_JOIN = 'full join' |
const | CROSS_JOIN = 'cross join' |
const | NATURAL_JOIN = 'natural join' |
const | SQL_WILDCARD = '*' |
const | SQL_SELECT = 'SELECT' |
const | SQL_UNION = 'UNION' |
const | SQL_UNION_ALL = 'UNION ALL' |
const | SQL_FROM = 'FROM' |
const | SQL_WHERE = 'WHERE' |
const | SQL_DISTINCT = 'DISTINCT' |
const | SQL_GROUP_BY = 'GROUP BY' |
const | SQL_ORDER_BY = 'ORDER BY' |
const | SQL_HAVING = 'HAVING' |
const | SQL_FOR_UPDATE = 'FOR UPDATE' |
const | SQL_AND = 'AND' |
const | SQL_AS = 'AS' |
const | SQL_OR = 'OR' |
const | SQL_ON = 'ON' |
const | SQL_ASC = 'ASC' |
const | SQL_DESC = 'DESC' |
Protected Member Functions | |
_join ($type, $name, $cond, $cols, $schema=null) | |
Populate the $_parts 'join' key. | |
_tableCols ($correlationName, $cols, $afterCorrelationName=null) | |
Adds to the internal table-to-column mapping array. | |
_where ($condition, $value=null, $type=null, $bool=true) | |
Internal function for creating the where clause. | |
_getDummyTable () | |
_getQuotedSchema ($schema=null) | |
Return a quoted schema name. | |
_getQuotedTable ($tableName, $correlationName=null) | |
Return a quoted table name. | |
_renderDistinct ($sql) | |
Render DISTINCT clause. | |
_renderColumns ($sql) | |
Render DISTINCT clause. | |
_renderFrom ($sql) | |
Render FROM clause. | |
_renderUnion ($sql) | |
Render UNION query. | |
_renderWhere ($sql) | |
Render WHERE clause. | |
_renderGroup ($sql) | |
Render GROUP clause. | |
_renderHaving ($sql) | |
Render HAVING clause. | |
_renderOrder ($sql) | |
Render ORDER clause. | |
_renderLimitoffset ($sql) | |
Render LIMIT OFFSET clause. | |
_renderForupdate ($sql) | |
Render FOR UPDATE clause. | |
Protected Attributes | |
$_bind = array() | |
$_adapter | |
$_parts = array() | |
$_tableCols = array() | |
Static Protected Attributes | |
static | $_partsInit |
static | $_joinTypes |
static | $_unionTypes |
__construct | ( | Zend_Db_Adapter_Abstract | $adapter | ) |
Class constructor.
Zend_Db_Adapter_Abstract | $adapter |
__call | ( | $method, | |
array | $args | ||
) |
Turn magic function calls into non-magic function calls for joinUsing syntax.
string | $method | |
array | $args | OPTIONAL Zend_Db_Table_Select query modifier |
Zend_Db_Select_Exception | If an invalid method is called. |
Recognize methods for Has-Many cases: findParent<Class>() findParent<Class>By<Rule>() Use the non-greedy pattern repeat modifier e.g. +?
__toString | ( | ) |
Implements magic method.
|
protected |
|
protected |
Return a quoted schema name.
string | $schema | The schema name OPTIONAL |
|
protected |
Return a quoted table name.
string | $tableName | The table name |
string | $correlationName | The correlation name OPTIONAL |
|
protected |
Populate the $_parts 'join' key.
Does the dirty work of populating the join key.
The $name and $cols parameters follow the same logic as described in the from() method.
null | string | $type | Type of join; inner, left, and null are currently supported |
array | string | Zend_Db_Expr | $name | Table name |
string | $cond | Join on this condition |
array | string | $cols | The columns to select from the joined table |
string | $schema | The database name to specify, if any. |
Zend_Db_Select_Exception |
_joinUsing | ( | $type, | |
$name, | |||
$cond, | |||
$cols = '*' , |
|||
$schema = null |
|||
) |
Handle JOIN...
USING... syntax
This is functionality identical to the existing JOIN methods, however the join condition can be passed as a single column name. This method then completes the ON condition by using the same field for the FROM table and the JOIN table.
$select = $db->select()->from('table1') ->joinUsing('table2', 'column1');
// SELECT * FROM table1 JOIN table2 ON table1.column1 = table2.column2
These joins are called by the developer simply by adding 'Using' to the method name. E.g. * joinUsing * joinInnerUsing * joinFullUsing * joinRightUsing * joinLeftUsing
|
protected |
Render DISTINCT clause.
string | $sql | SQL query |
|
protected |
Render DISTINCT clause.
string | $sql | SQL query |
|
protected |
Render FOR UPDATE clause.
string | $sql | SQL query |
|
protected |
Render FROM clause.
string | $sql | SQL query |
|
protected |
Render GROUP clause.
string | $sql | SQL query |
|
protected |
Render HAVING clause.
string | $sql | SQL query |
|
protected |
Render LIMIT OFFSET clause.
string | $sql | SQL query |
|
protected |
Render ORDER clause.
string | $sql | SQL query |
|
protected |
Render UNION query.
string | $sql | SQL query |
|
protected |
Render WHERE clause.
string | $sql | SQL query |
|
protected |
Adds to the internal table-to-column mapping array.
string | $tbl | The table/join the columns come from. |
array | string | $cols | The list of columns; preferably as an array, but possibly as a string containing one column. |
bool|string | True if it should be prepended, a correlation name if it should be inserted |
|
protected |
Internal function for creating the where clause.
string | $condition | |
mixed | $value | optional |
string | $type | optional |
boolean | $bool | true = AND, false = OR |
assemble | ( | ) |
Converts this object to an SQL SELECT string.
bind | ( | $bind | ) |
columns | ( | $cols = '*' , |
|
$correlationName = null |
|||
) |
Specifies the columns used in the FROM clause.
The parameter can be a single string or Zend_Db_Expr object, or else an array of strings or Zend_Db_Expr objects.
array | string | Zend_Db_Expr | $cols | The columns to select from this table. |
string | $correlationName | Correlation name of target table. OPTIONAL |
distinct | ( | $flag = true | ) |
Makes the query SELECT DISTINCT.
bool | $flag | Whether or not the SELECT is DISTINCT (default true). |
forUpdate | ( | $flag = true | ) |
Makes the query SELECT FOR UPDATE.
bool | $flag | Whether or not the SELECT is FOR UPDATE (default true). |
from | ( | $name, | |
$cols = '*' , |
|||
$schema = null |
|||
) |
Adds a FROM table and optional columns to the query.
The first parameter $name can be a simple string, in which case the correlation name is generated automatically. If you want to specify the correlation name, the first parameter must be an associative array in which the key is the correlation name, and the value is the physical table name. For example, array('alias' => 'table'). The correlation name is prepended to all columns fetched for this table.
The second parameter can be a single string or Zend_Db_Expr object, or else an array of strings or Zend_Db_Expr objects.
The first parameter can be null or an empty string, in which case no correlation name is generated or prepended to the columns named in the second parameter.
array | string | Zend_Db_Expr | $name | The table name or an associative array relating correlation name to table name. |
array | string | Zend_Db_Expr | $cols | The columns to select from this table. |
string | $schema | The schema name to specify, if any. |
getAdapter | ( | ) |
Gets the Zend_Db_Adapter_Abstract for this particular Zend_Db_Select object.
getBind | ( | ) |
Get bind variables.
getPart | ( | $part | ) |
Get part of the structured information for the current query.
string | $part |
Zend_Db_Select_Exception |
group | ( | $spec | ) |
Adds grouping to the query.
array | string | $spec | The column(s) to group by. |
having | ( | $cond, | |
$value = null , |
|||
$type = null |
|||
) |
Adds a HAVING condition to the query by AND.
If a value is passed as the second param, it will be quoted and replaced into the condition wherever a question-mark appears. See where() for an example
string | $cond | The HAVING condition. |
mixed | $value | OPTIONAL The value to quote into the condition. |
int | $type | OPTIONAL The type of the given value |
join | ( | $name, | |
$cond, | |||
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Adds a JOIN table and columns to the query.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
string | $cond | Join on this condition. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinCross | ( | $name, | |
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add a CROSS JOIN table and colums to the query.
A cross join is a cartesian product; there is no join condition.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinFull | ( | $name, | |
$cond, | |||
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add a FULL OUTER JOIN table and colums to the query.
A full outer join is like combining a left outer join and a right outer join. All rows from both tables are included, paired with each other on the same row of the result set if they satisfy the join condition, and otherwise paired with NULLs in place of columns from the other table.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
string | $cond | Join on this condition. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinInner | ( | $name, | |
$cond, | |||
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add an INNER JOIN table and colums to the query Rows in both tables are matched according to the expression in the $cond argument.
The result set is comprised of all cases where rows from the left table match rows from the right table.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
string | $cond | Join on this condition. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinLeft | ( | $name, | |
$cond, | |||
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add a LEFT OUTER JOIN table and colums to the query All rows from the left operand table are included, matching rows from the right operand table included, and the columns from the right operand table are filled with NULLs if no row exists matching the left table.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
string | $cond | Join on this condition. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinNatural | ( | $name, | |
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add a NATURAL JOIN table and colums to the query.
A natural join assumes an equi-join across any column(s) that appear with the same name in both tables. Only natural inner joins are supported by this API, even though SQL permits natural outer joins as well.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
joinRight | ( | $name, | |
$cond, | |||
$cols = self::SQL_WILDCARD , |
|||
$schema = null |
|||
) |
Add a RIGHT OUTER JOIN table and colums to the query.
Right outer join is the complement of left outer join. All rows from the right operand table are included, matching rows from the left operand table included, and the columns from the left operand table are filled with NULLs if no row exists matching the right table.
The $name and $cols parameters follow the same logic as described in the from() method.
array | string | Zend_Db_Expr | $name | The table name. |
string | $cond | Join on this condition. |
array | string | $cols | The columns to select from the joined table. |
string | $schema | The database name to specify, if any. |
limit | ( | $count = null , |
|
$offset = null |
|||
) |
Sets a limit count and offset to the query.
int | $count | OPTIONAL The number of rows to return. |
int | $offset | OPTIONAL Start returning after this many rows. |
limitPage | ( | $page, | |
$rowCount | |||
) |
Sets the limit and count by page number.
int | $page | Limit results to this page number. |
int | $rowCount | Use this many rows per page. |
order | ( | $spec | ) |
Adds a row order to the query.
mixed | $spec | The column(s) and direction to order by. |
orHaving | ( | $cond, | |
$value = null , |
|||
$type = null |
|||
) |
Adds a HAVING condition to the query by OR.
Otherwise identical to orHaving().
string | $cond | The HAVING condition. |
mixed | $value | OPTIONAL The value to quote into the condition. |
int | $type | OPTIONAL The type of the given value |
orWhere | ( | $cond, | |
$value = null , |
|||
$type = null |
|||
) |
Adds a WHERE condition to the query by OR.
Otherwise identical to where().
string | $cond | The WHERE condition. |
mixed | $value | OPTIONAL The value to quote into the condition. |
int | $type | OPTIONAL The type of the given value |
query | ( | $fetchMode = null , |
|
$bind = array() |
|||
) |
Executes the current select object and returns the result.
integer | $fetchMode | OPTIONAL |
mixed | $bind | An array of data to bind to the placeholders. |
reset | ( | $part = null | ) |
Clear parts of the Select object, or an individual part.
string | $part | OPTIONAL |
union | ( | $select = array() , |
|
$type = self::SQL_UNION |
|||
) |
Adds a UNION clause to the query.
The first parameter has to be an array of Zend_Db_Select or sql query strings.
$sql1 = $db->select(); $sql2 = "SELECT ..."; $select = $db->select() ->union(array($sql1, $sql2)) ->order("id");
array | $select | Array of select clauses for the union. |
where | ( | $cond, | |
$value = null , |
|||
$type = null |
|||
) |
Adds a WHERE condition to the query by AND.
If a value is passed as the second param, it will be quoted and replaced into the condition wherever a question-mark appears. Array values are quoted and comma-separated.
// simplest but non-secure $select->where("id = $id");
// secure (ID is quoted but matched anyway) $select->where('id = ?', $id);
// alternatively, with named binding $select->where('id = :id');
Note that it is more correct to use named bindings in your queries for values other than strings. When you use named bindings, don't forget to pass the values when actually making a query:
$db->fetchAll($select, array('id' => 5));
string | $cond | The WHERE condition. |
mixed | $value | OPTIONAL The value to quote into the condition. |
int | $type | OPTIONAL The type of the given value |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
staticprotected |
|
protected |
|
staticprotected |
const COLUMNS = 'columns' |
const CROSS_JOIN = 'cross join' |
const DISTINCT = 'distinct' |
const FOR_UPDATE = 'forupdate' |
const FROM = 'from' |
const FULL_JOIN = 'full join' |
const GROUP = 'group' |
const HAVING = 'having' |
const INNER_JOIN = 'inner join' |
const LEFT_JOIN = 'left join' |
const LIMIT_COUNT = 'limitcount' |
const LIMIT_OFFSET = 'limitoffset' |
const NATURAL_JOIN = 'natural join' |
const ORDER = 'order' |
const RIGHT_JOIN = 'right join' |
const SQL_AND = 'AND' |
const SQL_AS = 'AS' |
const SQL_ASC = 'ASC' |
const SQL_DESC = 'DESC' |
const SQL_DISTINCT = 'DISTINCT' |
const SQL_FOR_UPDATE = 'FOR UPDATE' |
const SQL_FROM = 'FROM' |
const SQL_GROUP_BY = 'GROUP BY' |
const SQL_HAVING = 'HAVING' |
const SQL_ON = 'ON' |
const SQL_OR = 'OR' |
const SQL_ORDER_BY = 'ORDER BY' |
const SQL_SELECT = 'SELECT' |
const SQL_UNION = 'UNION' |
const SQL_UNION_ALL = 'UNION ALL' |
const SQL_WHERE = 'WHERE' |
const SQL_WILDCARD = '*' |
const UNION = 'union' |
const WHERE = 'where' |