class SelectExtender implements SelectInterface (View source)

The base extender class for Select queries.

Properties

protected SelectInterface $query

The Select query object we are extending/decorating.

protected Connection $connection

The connection object on which to run this query.

protected string $uniqueIdentifier

A unique identifier for this query object.

protected int $placeholder

The placeholder counter.

Methods

__construct(SelectInterface $query, Connection $connection)

No description

uniqueIdentifier()

Returns a unique identifier for this object.

The
nextPlaceholder()

Returns the next placeholder ID for the query.

$this
addTag($tag)

Adds a tag to a query.

true
hasTag($tag)

Determines if a given query has a given tag.

true
hasAllTags()

Determines if a given query has all specified tags.

true
hasAnyTag()

Determines if a given query has any specified tag.

$this
addMetaData($key, $object)

Adds additional metadata to the query.

The
getMetaData($key)

Retrieves a given piece of metadata.

$this
condition(string|ConditionInterface $field, string|array|SelectInterface|null $value = NULL, string|null $operator = '=')

Helper function: builds the most common conditional clauses.

array
conditions()

Gets the, possibly nested, list of conditions in this conditional clause.

An
arguments()

Gets a complete list of all values to insert into the prepared statement.

$this
where(string $snippet, array $args = [])

Adds an arbitrary WHERE clause to the query.

compile(Connection $connection, PlaceholderInterface $queryPlaceholder)

Compiles the saved conditions for later retrieval.

true
compiled()

Check whether a condition has been previously compiled.

havingCondition($field, $value = NULL, $operator = '=')

Helper function to build most common HAVING conditional clauses.

array
havingConditions()

Gets a list of all conditions in the HAVING clause.

array
havingArguments()

Gets a list of all values to insert into the HAVING clause.

$this
having($snippet, $args = [])

Adds an arbitrary HAVING clause to the query.

havingCompile(Connection $connection)

Compiles the HAVING clause for later retrieval.

$this
havingIsNull($field)

Sets a condition in the HAVING clause that the specified field be NULL.

$this
havingIsNotNull($field)

Sets a condition in the HAVING clause that the specified field be NOT NULL.

$this
havingExists(SelectInterface $select)

Sets a HAVING condition that the specified subquery returns values.

$this
havingNotExists(SelectInterface $select)

Sets a HAVING condition that the specified subquery returns no values.

extend($extender_name)

Enhance this object by wrapping it in an extender object.

A
getFields()

Returns a reference to the fields array for this query.

A
getExpressions()

Returns a reference to the expressions array for this query.

A
getOrderBy()

Returns a reference to the order by array for this query.

A
getGroupBy()

Returns a reference to the group-by array for this query.

A
getTables()

Returns a reference to the tables array for this query.

A
getUnion()

Returns a reference to the union queries for this query. This include queries for UNION, UNION ALL, and UNION DISTINCT.

string
escapeLike($string)

Escapes characters that work as wildcard characters in a LIKE pattern.

The
escapeField(string $string)

Escapes a field name string.

An
getArguments(PlaceholderInterface $queryPlaceholder = NULL)

Compiles and returns an associative array of the arguments for this prepared statement.

true
isPrepared()

Indicates if preExecute() has already been called on that object.

true
preExecute(SelectInterface $query = NULL)

Generic preparation and validation for a SELECT query.

execute()

Runs the query against the database.

$this
distinct($distinct = TRUE)

Sets this query to be DISTINCT.

The
addField($table_alias, $field, $alias = NULL)

Adds a field to the list to be SELECTed.

$this
fields($table_alias, array $fields = [])

Add multiple fields from the same table to be SELECTed.

The
addExpression($expression, $alias = NULL, $arguments = [])

Adds an expression to the list of "fields" to be SELECTed.

The
join($table, $alias = NULL, $condition = NULL, $arguments = [])

Default Join against another table in the database.

The
innerJoin($table, $alias = NULL, $condition = NULL, $arguments = [])

Inner Join against another table in the database.

The
leftJoin($table, $alias = NULL, $condition = NULL, $arguments = [])

Left Outer Join against another table in the database.

The
addJoin($type, $table, $alias = NULL, $condition = NULL, $arguments = [])

Join against another table in the database.

$this
orderBy($field, $direction = 'ASC')

Orders the result set by a given field.

$this
orderRandom()

Orders the result set by a random value.

$this
range($start = NULL, $length = NULL)

Restricts a query to a given range in the result set.

$this
union(SelectInterface $query, $type = '')

Add another Select query to UNION to this one.

$this
groupBy($field)

Groups the result set by the specified field.

forUpdate($set = TRUE)

Add FOR UPDATE to the query.

countQuery()

Get the equivalent COUNT query of this query as a new query object.

$this
isNull(string|SelectInterface $field)

Sets a condition that the specified field be NULL.

$this
isNotNull(string|SelectInterface $field)

Sets a condition that the specified field be NOT NULL.

$this
exists(SelectInterface $select)

Sets a condition that the specified subquery returns values.

$this
notExists(SelectInterface $select)

Sets a condition that the specified subquery returns no values.

$this
alwaysFalse()

Sets a condition that is always false.

string
__toString()

Returns a string representation of how the query will be executed in SQL.

__clone()

Clone magic method.

__call($method, $args)

Magic override for undefined methods.

conditionGroupFactory($conjunction = 'AND')

Creates an object holding a group of conditions.

andConditionGroup()

Creates a new group of conditions ANDed together.

orConditionGroup()

Creates a new group of conditions ORed together.

Details

__construct(SelectInterface $query, Connection $connection)

No description

Parameters

SelectInterface $query
Connection $connection

uniqueIdentifier()

Returns a unique identifier for this object.

The nextPlaceholder()

Returns the next placeholder ID for the query.

Return Value

The

next available placeholder ID as an integer.

$this addTag($tag)

Adds a tag to a query.

Tags are strings that identify a query. A query may have any number of tags. Tags are used to mark a query so that alter hooks may decide if they wish to take action. Tags should be all lower-case and contain only letters, numbers, and underscore, and start with a letter. That is, they should follow the same rules as PHP identifiers in general.

Parameters

$tag

The tag to add.

Return Value

$this

The called object.

true hasTag($tag)

Determines if a given query has a given tag.

Parameters

$tag

The tag to check.

Return Value

true

if this query has been marked with this tag, FALSE otherwise.

true hasAllTags()

Determines if a given query has all specified tags.

Each tag to check should be supplied as a separate argument.

Return Value

true

if this query has been marked with all specified tags, FALSE otherwise.

true hasAnyTag()

Determines if a given query has any specified tag.

Each tag to check should be supplied as a separate argument.

Return Value

true

if this query has been marked with at least one of the specified tags, FALSE otherwise.

$this addMetaData($key, $object)

Adds additional metadata to the query.

Often, a query may need to provide additional contextual data to alter hooks. Alter hooks may then use that information to decide if and how to take action.

Parameters

$key

The unique identifier for this piece of metadata. Must be a string that follows the same rules as any other PHP identifier.

$object

The additional data to add to the query. May be any valid PHP variable.

Return Value

$this

The called object.

The getMetaData($key)

Retrieves a given piece of metadata.

Parameters

$key

The unique identifier for the piece of metadata to retrieve.

Return Value

The

previously attached metadata object, or NULL if one doesn't exist.

$this condition(string|ConditionInterface $field, string|array|SelectInterface|null $value = NULL, string|null $operator = '=')

Helper function: builds the most common conditional clauses.

This method takes 1 to 3 parameters.

If called with 1 parameter, it should be a ConditionInterface that in itself forms a valid where clause. Use e.g. to build clauses with nested ANDs and ORs.

If called with 2 parameters, they are taken as $field and $value with $operator having a value of =.

Do not use this method to test for NULL values. Instead, use QueryConditionInterface::isNull() or QueryConditionInterface::isNotNull().

To improve readability, the operators EXISTS and NOT EXISTS have their own utility method defined.

Drupal considers LIKE case insensitive and the following is often used to tell the database that case insensitive equivalence is desired:

Parameters

string|ConditionInterface $field

The name of the field to check. This can also be QueryConditionInterface in itself. Use where(), if you would like to add a more complex condition involving operators or functions, or an already compiled condition.

string|array|SelectInterface|null $value

The value to test the field against. In most cases, and depending on the operator, this will be a scalar or an array. As SQL accepts select queries on any place where a scalar value or set is expected, $value may also be a SelectInterface or an array of SelectInterfaces. If $operator is a unary operator, e.g. IS NULL, $value will be ignored and should be null. If the operator requires a subquery, e.g. EXISTS, the $field will be ignored and $value should be a SelectInterface object.

string|null $operator

The operator to use. Supported for all supported databases are at least:

  • The comparison operators =, <>, <, <=, >, >=.
  • The operators (NOT) BETWEEN, (NOT) IN, (NOT) EXISTS, (NOT) LIKE. Other operators (e.g. LIKE, BINARY) may or may not work. Defaults to =.

Return Value

$this

The called object.

Exceptions

InvalidQueryException

array conditions()

Gets the, possibly nested, list of conditions in this conditional clause.

This method returns by reference. That allows alter hooks to access the data structure directly and manipulate it before it gets compiled.

The data structure that is returned is an indexed array of entries, where each entry looks like the following:

Return Value

array

The, possibly nested, list of all conditions (by reference).

An arguments()

Gets a complete list of all values to insert into the prepared statement.

Return Value

An

associative array of placeholders and values.

$this where(string $snippet, array $args = [])

Adds an arbitrary WHERE clause to the query.

Parameters

string $snippet

A portion of a WHERE clause as a prepared statement. It must use named placeholders, not ? placeholders. The caller is responsible for providing unique placeholders that do not interfere with the placeholders generated by this QueryConditionInterface object.

array $args

An associative array of arguments keyed by the named placeholders.

Return Value

$this

The called object.

compile(Connection $connection, PlaceholderInterface $queryPlaceholder)

Compiles the saved conditions for later retrieval.

This method does not return anything, but simply prepares data to be retrieved via __toString() and arguments().

Parameters

Connection $connection

The database connection for which to compile the conditionals.

PlaceholderInterface $queryPlaceholder

The query this condition belongs to. If not given, the current query is used.

true compiled()

Check whether a condition has been previously compiled.

Return Value

true

if the condition has been previously compiled.

ConditionInterface havingCondition($field, $value = NULL, $operator = '=')

Helper function to build most common HAVING conditional clauses.

This method can take a variable number of parameters. If called with two parameters, they are taken as $field and $value with $operator having a value of IN if $value is an array and = otherwise.

Parameters

$field

The name of the field to check. If you would like to add a more complex condition involving operators or functions, use having().

$value

The value to test the field against. In most cases, this is a scalar. For more complex options, it is an array. The meaning of each element in the array is dependent on the $operator.

$operator

The comparison operator, such as =, <, or >=. It also accepts more complex options such as IN, LIKE, or BETWEEN. Defaults to IN if $value is an array = otherwise.

Return Value

ConditionInterface

The called object.

array havingConditions()

Gets a list of all conditions in the HAVING clause.

This method returns by reference. That allows alter hooks to access the data structure directly and manipulate it before it gets compiled.

Return Value

array

An array of conditions.

array havingArguments()

Gets a list of all values to insert into the HAVING clause.

Return Value

array

An associative array of placeholders and values.

$this having($snippet, $args = [])

Adds an arbitrary HAVING clause to the query.

Parameters

$snippet

A portion of a HAVING clause as a prepared statement. It must use named placeholders, not ? placeholders.

$args

(optional) An associative array of arguments.

Return Value

$this

havingCompile(Connection $connection)

Compiles the HAVING clause for later retrieval.

Parameters

Connection $connection

The database connection for which to compile the clause.

$this havingIsNull($field)

Sets a condition in the HAVING clause that the specified field be NULL.

Parameters

$field

The name of the field to check.

Return Value

$this

$this havingIsNotNull($field)

Sets a condition in the HAVING clause that the specified field be NOT NULL.

Parameters

$field

The name of the field to check.

Return Value

$this

$this havingExists(SelectInterface $select)

Sets a HAVING condition that the specified subquery returns values.

Parameters

SelectInterface $select

The subquery that must contain results.

Return Value

$this

$this havingNotExists(SelectInterface $select)

Sets a HAVING condition that the specified subquery returns no values.

Parameters

SelectInterface $select

The subquery that must contain results.

Return Value

$this

ExtendableInterface extend($extender_name)

Enhance this object by wrapping it in an extender object.

Parameters

$extender_name

The fully-qualified name of the extender class, without the leading '\' (for example, Drupal\my_module\myExtenderClass). The extender name will be checked against the current database connection to allow driver-specific subclasses as well, using the same logic as the query objects themselves.

Return Value

ExtendableInterface

The extender object, which now contains a reference to this object.

A getFields()

Returns a reference to the fields array for this query.

Because this method returns by reference, alter hooks may edit the fields array directly to make their changes. If just adding fields, however, the use of addField() is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the fields array structure.

A getExpressions()

Returns a reference to the expressions array for this query.

Because this method returns by reference, alter hooks may edit the expressions array directly to make their changes. If just adding expressions, however, the use of addExpression() is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the expression array structure.

A getOrderBy()

Returns a reference to the order by array for this query.

Because this method returns by reference, alter hooks may edit the order-by array directly to make their changes. If just adding additional ordering fields, however, the use of orderBy() is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the expression array structure.

A getGroupBy()

Returns a reference to the group-by array for this query.

Because this method returns by reference, alter hooks may edit the group-by array directly to make their changes. If just adding additional grouping fields, however, the use of groupBy() is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the group-by array structure.

A getTables()

Returns a reference to the tables array for this query.

Because this method returns by reference, alter hooks may edit the tables array directly to make their changes. If just adding tables, however, the use of the join() methods is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the tables array structure.

A getUnion()

Returns a reference to the union queries for this query. This include queries for UNION, UNION ALL, and UNION DISTINCT.

Because this method returns by reference, alter hooks may edit the tables array directly to make their changes. If just adding union queries, however, the use of the union() method is preferred.

Note that this method must be called by reference as well:

Return Value

A

reference to the union query array structure.

string escapeLike($string)

Escapes characters that work as wildcard characters in a LIKE pattern.

Parameters

$string

The string to escape.

Return Value

string

The escaped string.

The escapeField(string $string)

Escapes a field name string.

Force all field names to be strictly alphanumeric-plus-underscore. For some database drivers, it may also wrap the field name in database-specific escape characters.

Parameters

string $string

An unsanitized field name.

Return Value

The

sanitized field name string.

An getArguments(PlaceholderInterface $queryPlaceholder = NULL)

Compiles and returns an associative array of the arguments for this prepared statement.

Parameters

PlaceholderInterface $queryPlaceholder

When collecting the arguments of a subquery, the main placeholder object should be passed as this parameter.

Return Value

An

associative array of all placeholder arguments for this query.

true isPrepared()

Indicates if preExecute() has already been called on that object.

Return Value

true

is this query has already been prepared, FALSE otherwise.

true preExecute(SelectInterface $query = NULL)

Generic preparation and validation for a SELECT query.

Parameters

SelectInterface $query

Return Value

true

if the validation was successful, FALSE if not.

StatementInterface|null execute()

Runs the query against the database.

Return Value

StatementInterface|null

A prepared statement, or NULL if the query is not valid.

$this distinct($distinct = TRUE)

Sets this query to be DISTINCT.

Parameters

$distinct

TRUE to flag this query DISTINCT, FALSE to disable it.

Return Value

$this

The called object.

The addField($table_alias, $field, $alias = NULL)

Adds a field to the list to be SELECTed.

Parameters

$table_alias

The name of the table from which the field comes, as an alias. Generally you will want to use the return value of join() here to ensure that it is valid.

$field

The name of the field.

$alias

The alias for this field. If not specified, one will be generated automatically based on the $table_alias and $field. The alias will be checked for uniqueness, so the requested alias may not be the alias that is assigned in all cases.

Return Value

The

unique alias that was assigned for this field.

$this fields($table_alias, array $fields = [])

Add multiple fields from the same table to be SELECTed.

This method does not return the aliases set for the passed fields. In the majority of cases that is not a problem, as the alias will be the field name. However, if you do need to know the alias you can call getFields() and examine the result to determine what alias was created. Alternatively, simply use addField() for the few fields you care about and this method for the rest.

Parameters

$table_alias

The name of the table from which the field comes, as an alias. Generally you will want to use the return value of join() here to ensure that it is valid.

array $fields

An indexed array of fields present in the specified table that should be included in this query. If not specified, $table_alias.* will be generated without any aliases.

Return Value

$this

The called object.

The addExpression($expression, $alias = NULL, $arguments = [])

Adds an expression to the list of "fields" to be SELECTed.

An expression can be any arbitrary string that is valid SQL. That includes various functions, which may in some cases be database-dependent. This method makes no effort to correct for database-specific functions.

Parameters

$expression

The expression string. May contain placeholders.

$alias

The alias for this expression. If not specified, one will be generated automatically in the form "expression_#". The alias will be checked for uniqueness, so the requested alias may not be the alias that is assigned in all cases.

$arguments

Any placeholder arguments needed for this expression.

Return Value

The

unique alias that was assigned for this expression.

The join($table, $alias = NULL, $condition = NULL, $arguments = [])

Default Join against another table in the database.

This method is a convenience method for innerJoin().

Parameters

$table

The table against which to join. May be a string or another SelectQuery object. If a query object is passed, it will be used as a subselect. Unless the table name starts with the database / schema name and a dot it will be prefixed.

$alias

The alias for the table. In most cases this should be the first letter of the table, or the first letter of each "word" in the table.

$condition

The condition on which to join this table. If the join requires values, this clause should use a named placeholder and the value or values to insert should be passed in the 4th parameter. For the first table joined on a query, this value is ignored as the first table is taken as the base table. The token %alias can be used in this string to be replaced with the actual alias. This is useful when $alias is modified by the database system, for example, when joining the same table more than once.

$arguments

An array of arguments to replace into the $condition of this join.

Return Value

The

unique alias that was assigned for this table.

The innerJoin($table, $alias = NULL, $condition = NULL, $arguments = [])

Inner Join against another table in the database.

Parameters

$table

The table against which to join. May be a string or another SelectQuery object. If a query object is passed, it will be used as a subselect. Unless the table name starts with the database / schema name and a dot it will be prefixed.

$alias

The alias for the table. In most cases this should be the first letter of the table, or the first letter of each "word" in the table.

$condition

The condition on which to join this table. If the join requires values, this clause should use a named placeholder and the value or values to insert should be passed in the 4th parameter. For the first table joined on a query, this value is ignored as the first table is taken as the base table. The token %alias can be used in this string to be replaced with the actual alias. This is useful when $alias is modified by the database system, for example, when joining the same table more than once.

$arguments

An array of arguments to replace into the $condition of this join.

Return Value

The

unique alias that was assigned for this table.

The leftJoin($table, $alias = NULL, $condition = NULL, $arguments = [])

Left Outer Join against another table in the database.

Parameters

$table

The table against which to join. May be a string or another SelectQuery object. If a query object is passed, it will be used as a subselect. Unless the table name starts with the database / schema name and a dot it will be prefixed.

$alias

The alias for the table. In most cases this should be the first letter of the table, or the first letter of each "word" in the table.

$condition

The condition on which to join this table. If the join requires values, this clause should use a named placeholder and the value or values to insert should be passed in the 4th parameter. For the first table joined on a query, this value is ignored as the first table is taken as the base table. The token %alias can be used in this string to be replaced with the actual alias. This is useful when $alias is modified by the database system, for example, when joining the same table more than once.

$arguments

An array of arguments to replace into the $condition of this join.

Return Value

The

unique alias that was assigned for this table.

The addJoin($type, $table, $alias = NULL, $condition = NULL, $arguments = [])

Join against another table in the database.

This method does the "hard" work of queuing up a table to be joined against. In some cases, that may include dipping into the Schema API to find the necessary fields on which to join.

Parameters

$type

The type of join. Typically one one of INNER, LEFT OUTER, and RIGHT OUTER.

$table

The table against which to join. May be a string or another SelectQuery object. If a query object is passed, it will be used as a subselect. Unless the table name starts with the database / schema name and a dot it will be prefixed.

$alias

The alias for the table. In most cases this should be the first letter of the table, or the first letter of each "word" in the table. If omitted, one will be dynamically generated.

$condition

The condition on which to join this table. If the join requires values, this clause should use a named placeholder and the value or values to insert should be passed in the 4th parameter. For the first table joined on a query, this value is ignored as the first table is taken as the base table. The token %alias can be used in this string to be replaced with the actual alias. This is useful when $alias is modified by the database system, for example, when joining the same table more than once.

$arguments

An array of arguments to replace into the $condition of this join.

Return Value

The

unique alias that was assigned for this table.

$this orderBy($field, $direction = 'ASC')

Orders the result set by a given field.

If called multiple times, the query will order by each specified field in the order this method is called.

If the query uses DISTINCT or GROUP BY conditions, fields or expressions that are used for the order must be selected to be compatible with some databases like PostgreSQL. The PostgreSQL driver can handle simple cases automatically but it is suggested to explicitly specify them. Additionally, when ordering on an alias, the alias must be added before orderBy() is called.

Parameters

$field

The field on which to order. The field is escaped for security so only valid field and alias names are possible. To order by an expression, add the expression with addExpression() first and then use the alias to order on.

Example: @code $query->addExpression('SUBSTRING([thread], 1, (LENGTH([thread]) - 1))', 'order_field'); $query->orderBy('order_field', 'ASC'); @endcode

$direction

The direction to sort. Legal values are "ASC" and "DESC". Any other value will be converted to "ASC".

Return Value

$this

The called object.

$this orderRandom()

Orders the result set by a random value.

This may be stacked with other orderBy() calls. If so, the query will order by each specified field, including this one, in the order called. Although this method may be called multiple times on the same query, doing so is not particularly useful.

Note: The method used by most drivers may not scale to very large result sets. If you need to work with extremely large data sets, you may create your own database driver by subclassing off of an existing driver and implementing your own randomization mechanism. See

http://jan.kneschke.de/projects/mysql/order-by-rand/

for an example of such an alternate sorting mechanism.

Return Value

$this

The called object

$this range($start = NULL, $length = NULL)

Restricts a query to a given range in the result set.

If this method is called with no parameters, will remove any range directives that have been set.

Parameters

$start

The first record from the result set to return. If NULL, removes any range directives that are set.

$length

The number of records to return from the result set.

Return Value

$this

The called object.

$this union(SelectInterface $query, $type = '')

Add another Select query to UNION to this one.

Union queries consist of two or more queries whose results are effectively concatenated together. Queries will be UNIONed in the order they are specified, with this object's query coming first. Duplicate columns will be discarded. All forms of UNION are supported, using the second '$type' argument.

Note: All queries UNIONed together must have the same field structure, in the same order. It is up to the caller to ensure that they match properly. If they do not, an SQL syntax error will result.

Parameters

SelectInterface $query

The query to UNION to this query.

$type

The type of UNION to add to the query. Defaults to plain UNION.

Return Value

$this

The called object.

$this groupBy($field)

Groups the result set by the specified field.

Parameters

$field

The field on which to group. This should be the field as aliased.

Return Value

$this

The called object.

ConditionInterface forUpdate($set = TRUE)

Add FOR UPDATE to the query.

FOR UPDATE prevents the rows retrieved by the SELECT statement from being modified or deleted by other transactions until the current transaction ends. Other transactions that attempt UPDATE, DELETE, or SELECT FOR UPDATE of these rows will be blocked until the current transaction ends.

Parameters

$set

IF TRUE, FOR UPDATE will be added to the query, if FALSE then it won't.

Return Value

ConditionInterface

The called object.

SelectInterface countQuery()

Get the equivalent COUNT query of this query as a new query object.

Return Value

SelectInterface

A new SelectQuery object with no fields or expressions besides COUNT(*).

$this isNull(string|SelectInterface $field)

Sets a condition that the specified field be NULL.

Parameters

string|SelectInterface $field

The name of the field or a subquery to check.

Return Value

$this

The called object.

$this isNotNull(string|SelectInterface $field)

Sets a condition that the specified field be NOT NULL.

Parameters

string|SelectInterface $field

The name of the field or a subquery to check.

Return Value

$this

The called object.

$this exists(SelectInterface $select)

Sets a condition that the specified subquery returns values.

Parameters

SelectInterface $select

The subquery that must contain results.

Return Value

$this

The called object.

$this notExists(SelectInterface $select)

Sets a condition that the specified subquery returns no values.

Parameters

SelectInterface $select

The subquery that must not contain results.

Return Value

$this

The called object.

$this alwaysFalse()

Sets a condition that is always false.

Return Value

$this

string __toString()

Returns a string representation of how the query will be executed in SQL.

Return Value

string

The Select Query object expressed as a string.

__clone()

Clone magic method.

Select queries have dependent objects that must be deep-cloned. The connection object itself, however, should not be cloned as that would duplicate the connection itself.

__call($method, $args)

Magic override for undefined methods.

If one extender extends another extender, then methods in the inner extender will not be exposed on the outer extender. That's because we cannot know in advance what those methods will be, so we cannot provide wrapping implementations as we do above. Instead, we use this slower catch-all method to handle any additional methods.

Parameters

$method
$args

ConditionInterface conditionGroupFactory($conjunction = 'AND')

Creates an object holding a group of conditions.

See andConditionGroup() and orConditionGroup() for more.

Parameters

$conjunction
  • AND (default): this is the equivalent of andConditionGroup().
  • OR: this is the equivalent of orConditionGroup().

Return Value

ConditionInterface

An object holding a group of conditions.

ConditionInterface andConditionGroup()

Creates a new group of conditions ANDed together.

Return Value

ConditionInterface

ConditionInterface orConditionGroup()

Creates a new group of conditions ORed together.

Return Value

ConditionInterface