TYPO3 CMS  TYPO3_8-7
TYPO3\CMS\Core\Database\Query\QueryBuilder Class Reference

Public Member Functions

 __construct (Connection $connection, QueryRestrictionContainerInterface $restrictionContainer=null, \Doctrine\DBAL\Query\QueryBuilder $concreteQueryBuilder=null, array $additionalRestrictions=null)
 
 getRestrictions ()
 
 setRestrictions (QueryRestrictionContainerInterface $restrictionContainer)
 
 resetRestrictions ()
 
 expr ()
 
 getType ()
 
 getConnection ()
 
 getState ()
 
 getConcreteQueryBuilder ()
 
 execute ()
 
 getSQL ()
 
 setParameter ($key, $value, int $type=null)
 
 setParameters (array $params, array $types=[])
 
 getParameters ()
 
 getParameter ($key)
 
 getParameterTypes ()
 
 getParameterType ($key)
 
 setFirstResult (int $firstResult)
 
 getFirstResult ()
 
 setMaxResults (int $maxResults)
 
 getMaxResults ()
 
 add (string $sqlPartName, string $sqlPart, bool $append=false)
 
 count (string $item)
 
 select (string ... $selects)
 
 addSelect (string ... $selects)
 
 selectLiteral (string ... $selects)
 
 addSelectLiteral (string ... $selects)
 
 delete (string $delete, string $alias=null)
 
 update (string $update, string $alias=null)
 
 insert (string $insert)
 
 from (string $from, string $alias=null)
 
 join (string $fromAlias, string $join, string $alias, string $condition=null)
 
 innerJoin (string $fromAlias, string $join, string $alias, string $condition=null)
 
 leftJoin (string $fromAlias, string $join, string $alias, string $condition=null)
 
 rightJoin (string $fromAlias, string $join, string $alias, string $condition=null)
 
 set (string $key, $value, bool $createNamedParameter=true)
 
 where (... $predicates)
 
 andWhere (... $where)
 
 orWhere (... $where)
 
 groupBy (... $groupBy)
 
 addGroupBy (... $groupBy)
 
 setValue (string $column, $value, bool $createNamedParameter=true)
 
 values (array $values, bool $createNamedParameters=true)
 
 having (... $having)
 
 andHaving (... $having)
 
 orHaving (... $having)
 
 orderBy (string $fieldName, string $order=null)
 
 addOrderBy (string $fieldName, string $order=null)
 
 getQueryPart (string $queryPartName)
 
 getQueryParts ()
 
 resetQueryParts (array $queryPartNames=null)
 
 resetQueryPart ($queryPartName)
 
 __toString ()
 
 createNamedParameter ($value, int $type=\PDO::PARAM_STR, string $placeHolder=null)
 
 createPositionalParameter ($value, int $type=\PDO::PARAM_STR)
 
 escapeLikeWildcards (string $value)
 
 quote ($input, int $type=null)
 
 quoteIdentifier (string $identifier)
 
 quoteIdentifiers (array $input)
 
 quoteIdentifiersForSelect (array $input)
 
 quoteColumnValuePairs (array $input)
 
 __clone ()
 

Protected Member Functions

 unquoteSingleIdentifier (string $identifier)
 
 getQueriedTables ()
 
 addAdditionalWhereConditions ()
 

Protected Attributes

 $connection
 
 $concreteQueryBuilder
 
 $restrictionContainer
 
 $additionalRestrictions
 

Detailed Description

Object oriented approach to building SQL queries.

It's a facade to the Doctrine DBAL QueryBuilder that implements PHP7 type hinting and automatic quoting of table and column names.

$query->select('aField', 'anotherField') ->from('aTable') ->where($query->expr()->eq('aField', 1)) ->andWhere($query->expr()->gte('anotherField',10')) ->execute()

Additional functionality included is support for COUNT() and TRUNCATE() statements.

Definition at line 42 of file QueryBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Database\Query\QueryBuilder::__construct ( Connection  $connection,
QueryRestrictionContainerInterface  $restrictionContainer = null,
\Doctrine\DBAL\Query\QueryBuilder  $concreteQueryBuilder = null,
array  $additionalRestrictions = null 
)

Member Function Documentation

◆ __clone()

TYPO3\CMS\Core\Database\Query\QueryBuilder::__clone ( )

◆ __toString()

TYPO3\CMS\Core\Database\Query\QueryBuilder::__toString ( )

Gets a string representation of this QueryBuilder which corresponds to the final SQL query being constructed.

Returns
string The string representation of this QueryBuilder.

Definition at line 872 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getSQL().

◆ add()

◆ addAdditionalWhereConditions()

TYPO3\CMS\Core\Database\Query\QueryBuilder::addAdditionalWhereConditions ( )
protected

Add the additional query conditions returned by the QueryRestrictionBuilder to the current query and return the original set of conditions so that they can be restored after the query has been built/executed.

Returns
|mixed

Definition at line 1097 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\expr(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\getQueriedTables().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\execute(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\getSQL().

◆ addGroupBy()

TYPO3\CMS\Core\Database\Query\QueryBuilder::addGroupBy (   $groupBy)

Adds a grouping expression to the query.

Parameters
mixed,...$groupBy The grouping expression.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 693 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addGroupBy(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifiers().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addGroupBy().

◆ addOrderBy()

TYPO3\CMS\Core\Database\Query\QueryBuilder::addOrderBy ( string  $fieldName,
string  $order = null 
)

Adds an ordering to the query results.

Parameters
string$fieldNameThe fieldName to order by. Will be quoted according to database platform automatically.
string$orderThe ordering direction.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 809 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addOrderBy().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addOrderBy().

◆ addSelect()

TYPO3\CMS\Core\Database\Query\QueryBuilder::addSelect ( string ...  $selects)

Adds an item that is to be returned in the query result.

Parameters
string[]$selects The selection expression.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 404 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addSelect(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifiersForSelect().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addSelect(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\addSelectLiteral().

◆ addSelectLiteral()

TYPO3\CMS\Core\Database\Query\QueryBuilder::addSelectLiteral ( string ...  $selects)

Adds an item that is to be returned in the query result. This should only be used for literal SQL expressions as no quoting/escaping of any kind will be performed on the items.

Parameters
string[]$selects Literal SQL expressions to be selected.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 435 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addSelect().

◆ andHaving()

TYPO3\CMS\Core\Database\Query\QueryBuilder::andHaving (   $having)

Adds a restriction over the groups of the query, forming a logical conjunction with any existing having restrictions.

Parameters
mixed,...$having The restriction to append.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 763 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\andHaving().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\andHaving().

◆ andWhere()

TYPO3\CMS\Core\Database\Query\QueryBuilder::andWhere (   $where)

Adds one or more restrictions to the query results, forming a logical conjunction with any previously specified restrictions.

Parameters
mixed,...$where The query restrictions.
Returns
QueryBuilder This QueryBuilder instance.
See also
where()

Definition at line 647 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\andWhere().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\andWhere(), TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\applyWorkspaceConstraint(), and TYPO3\CMS\Backend\Tree\Pagetree\DataProvider\setWhereClause().

◆ count()

TYPO3\CMS\Core\Database\Query\QueryBuilder::count ( string  $item)

Specifies the item that is to be counted in the query result. Replaces any previously specified selections, if any.

Parameters
string$itemWill be quoted according to database platform automatically.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 373 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getConnection(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

◆ createNamedParameter()

TYPO3\CMS\Core\Database\Query\QueryBuilder::createNamedParameter (   $value,
int  $type = \PDO::PARAM_STR,
string  $placeHolder = null 
)

Creates a new named parameter and bind the value $value to it.

This method provides a shortcut for PDOStatement::bindValue when using prepared statements.

The parameter $value specifies the value that you want to bind. If $placeholder is not provided bindValue() will automatically create a placeholder for you. An automatic placeholder will be of the name ':dcValue1', ':dcValue2' etc.

Parameters
mixed$value
int$type
string$placeHolderThe name to bind with. The string must start with a colon ':'.
Returns
string the placeholder name used.

Definition at line 894 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\applyWorkspaceConstraint(), TYPO3\CMS\Backend\Search\LiveSearch\LiveSearch\makeQuerySearchByTable(), TYPO3\CMS\Core\Database\Query\QueryBuilder\set(), TYPO3\CMS\Core\Database\Query\QueryBuilder\setValue(), TYPO3\CMS\Backend\Tree\Pagetree\DataProvider\setWhereClause(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\values().

◆ createPositionalParameter()

TYPO3\CMS\Core\Database\Query\QueryBuilder::createPositionalParameter (   $value,
int  $type = \PDO::PARAM_STR 
)

Creates a new positional parameter and bind the given value to it.

Attention: If you are using positional parameters with the query builder you have to be very careful to bind all parameters in the order they appear in the SQL statement , otherwise they get bound in the wrong order which can lead to serious bugs in your code.

Parameters
mixed$value
int$type
Returns
string

Definition at line 912 of file QueryBuilder.php.

◆ delete()

TYPO3\CMS\Core\Database\Query\QueryBuilder::delete ( string  $delete,
string  $alias = null 
)

Turns the query being built into a bulk delete query that ranges over a certain table.

Parameters
string$deleteThe table whose rows are subject to the deletion. Will be quoted according to database platform automatically.
string$aliasThe table alias used in the constructed query. Will be quoted according to database platform automatically.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 453 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\delete(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\delete().

◆ escapeLikeWildcards()

TYPO3\CMS\Core\Database\Query\QueryBuilder::escapeLikeWildcards ( string  $value)

Quotes like wildcards for given string value.

Parameters
string$valueThe value to be quoted.
Returns
string The quoted value.

Definition at line 924 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Backend\Search\LiveSearch\LiveSearch\makeQuerySearchByTable(), and TYPO3\CMS\Backend\Tree\Pagetree\DataProvider\setWhereClause().

◆ execute()

TYPO3\CMS\Core\Database\Query\QueryBuilder::execute ( )

Executes this query using the bound parameters and their types.

Returns
|int

Definition at line 178 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addAdditionalWhereConditions(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\getType().

◆ expr()

TYPO3\CMS\Core\Database\Query\QueryBuilder::expr ( )

Gets an ExpressionBuilder used for object-oriented construction of query expressions. This producer method is intended for convenient inline usage. Example:

For more complex expression construction, consider storing the expression builder object in a local variable.

Returns
ExpressionBuilder

Definition at line 125 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addAdditionalWhereConditions(), TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateModuleController\applyWorkspaceConstraint(), TYPO3\CMS\Backend\Search\LiveSearch\LiveSearch\makeQuerySearchByTable(), and TYPO3\CMS\Backend\Tree\Pagetree\DataProvider\setWhereClause().

◆ from()

TYPO3\CMS\Core\Database\Query\QueryBuilder::from ( string  $from,
string  $alias = null 
)

Creates and adds a query root corresponding to the table identified by the given alias, forming a cartesian product with any existing query roots.

Parameters
string$fromThe table. Will be quoted according to database platform automatically.
string$aliasThe alias of the table. Will be quoted according to database platform automatically.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 506 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\from(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\from().

◆ getConcreteQueryBuilder()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getConcreteQueryBuilder ( )

Gets the concrete implementation of the query builder

Returns

Definition at line 168 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\$concreteQueryBuilder.

◆ getConnection()

◆ getFirstResult()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getFirstResult ( )

Gets the position of the first result the query object was set to retrieve (the "offset"). Returns NULL if setFirstResult was not applied to this QueryBuilder.

Returns
int The position of the first result.

Definition at line 317 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer\getQueryArray().

◆ getMaxResults()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getMaxResults ( )

Gets the maximum number of results the query object was set to retrieve (the "limit"). Returns 0 if setMaxResults was not applied to this query builder.

Returns
int The maximum number of results.

Definition at line 342 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer\getQueryArray().

◆ getParameter()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getParameter (   $key)

Gets a (previously set) query parameter of the query being constructed.

Parameters
string | int$keyThe key (index or name) of the bound parameter.
Returns
mixed The value of the bound parameter.

Definition at line 270 of file QueryBuilder.php.

◆ getParameters()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getParameters ( )

Gets all defined query parameters for the query being constructed indexed by parameter index or name.

Returns
array The currently defined query parameters indexed by parameter index or name.

Definition at line 258 of file QueryBuilder.php.

◆ getParameterType()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getParameterType (   $key)

Gets a (previously set) query parameter type of the query being constructed.

Parameters
string | int$keyThe key (index or name) of the bound parameter type.
Returns
mixed The value of the bound parameter type.

Definition at line 292 of file QueryBuilder.php.

◆ getParameterTypes()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getParameterTypes ( )

Gets all defined query parameter types for the query being constructed indexed by parameter index or name.

Returns
array The currently defined query parameter types indexed by parameter index or name.

Definition at line 280 of file QueryBuilder.php.

◆ getQueriedTables()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getQueriedTables ( )
protected

Return all tables/aliases used in FROM or JOIN query parts from the query builder.

The table names are automatically unquoted. This is a helper for to build the list of queried tables for the AbstractRestrictionContainer.

Returns
string[]

Definition at line 1067 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getQueryPart(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\unquoteSingleIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addAdditionalWhereConditions().

◆ getQueryPart()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getQueryPart ( string  $queryPartName)

Gets a query part by its name.

Parameters
string$queryPartName
Returns
mixed

Definition at line 823 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\getQueriedTables(), and TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer\getQueryArray().

◆ getQueryParts()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getQueryParts ( )

Gets all query parts.

Returns
array

Definition at line 833 of file QueryBuilder.php.

◆ getRestrictions()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getRestrictions ( )
Returns
QueryRestrictionContainerInterface

Definition at line 89 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\$restrictionContainer.

◆ getSQL()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getSQL ( )

Gets the complete SQL string formed by the current specifications of this QueryBuilder.

If the statement is a SELECT TYPE query restrictions based on TCA settings will automatically be applied based on the current QuerySettings.

Returns
string The SQL query string.

Definition at line 204 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\addAdditionalWhereConditions(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\getType().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\__toString().

◆ getState()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getState ( )

Gets the state of this query builder instance.

Returns
int Either QueryBuilder::STATE_DIRTY or QueryBuilder::STATE_CLEAN.

Definition at line 157 of file QueryBuilder.php.

◆ getType()

TYPO3\CMS\Core\Database\Query\QueryBuilder::getType ( )

Gets the type of the currently built query.

Returns
int

Definition at line 136 of file QueryBuilder.php.

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\execute(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\getSQL().

◆ groupBy()

TYPO3\CMS\Core\Database\Query\QueryBuilder::groupBy (   $groupBy)

Specifies a grouping over the results of the query. Replaces any previously specified groupings, if any.

Parameters
mixed,...$groupBy The grouping expression.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 679 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\groupBy(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifiers().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\groupBy().

◆ having()

TYPO3\CMS\Core\Database\Query\QueryBuilder::having (   $having)

Specifies a restriction over the groups of the query. Replaces any previous having restrictions, if any.

Parameters
mixed,...$having The restriction over the groups.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 749 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\having().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\having().

◆ innerJoin()

TYPO3\CMS\Core\Database\Query\QueryBuilder::innerJoin ( string  $fromAlias,
string  $join,
string  $alias,
string  $condition = null 
)

Creates and adds a join to the query.

Parameters
string$fromAliasThe alias that points to a from clause.
string$joinThe table name to join.
string$aliasThe alias of the join table.
string$conditionThe condition for the join.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 548 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\innerJoin(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\innerJoin(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\join().

◆ insert()

TYPO3\CMS\Core\Database\Query\QueryBuilder::insert ( string  $insert)

Turns the query being built into an insert query that inserts into a certain table

Parameters
string$insertThe table into which the rows should be inserted.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 490 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\insert(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\insert().

◆ join()

TYPO3\CMS\Core\Database\Query\QueryBuilder::join ( string  $fromAlias,
string  $join,
string  $alias,
string  $condition = null 
)

Creates and adds a join to the query.

Parameters
string$fromAliasThe alias that points to a from clause.
string$joinThe table name to join.
string$aliasThe alias of the join table.
string$conditionThe condition for the join.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 526 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\innerJoin(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

◆ leftJoin()

TYPO3\CMS\Core\Database\Query\QueryBuilder::leftJoin ( string  $fromAlias,
string  $join,
string  $alias,
string  $condition = null 
)

Creates and adds a left join to the query.

Parameters
string$fromAliasThe alias that points to a from clause.
string$joinThe table name to join.
string$aliasThe alias of the join table.
string$conditionThe condition for the join.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 570 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\leftJoin(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\leftJoin().

◆ orderBy()

TYPO3\CMS\Core\Database\Query\QueryBuilder::orderBy ( string  $fieldName,
string  $order = null 
)

Specifies an ordering for the query results. Replaces any previously specified orderings, if any.

Parameters
string$fieldNameThe fieldName to order by. Will be quoted according to database platform automatically.
string$orderThe ordering direction. No automatic quoting/escaping.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 794 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\orderBy().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\orderBy().

◆ orHaving()

TYPO3\CMS\Core\Database\Query\QueryBuilder::orHaving (   $having)

Adds a restriction over the groups of the query, forming a logical disjunction with any existing having restrictions.

Parameters
mixed,...$having The restriction to add.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 778 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\orHaving().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\orHaving().

◆ orWhere()

TYPO3\CMS\Core\Database\Query\QueryBuilder::orWhere (   $where)

Adds one or more restrictions to the query results, forming a logical disjunction with any previously specified restrictions.

Parameters
mixed,...$where The WHERE statement.
Returns
QueryBuilder This QueryBuilder instance.
See also
where()

Definition at line 664 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\orWhere().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\orWhere().

◆ quote()

TYPO3\CMS\Core\Database\Query\QueryBuilder::quote (   $input,
int  $type = null 
)

Quotes a given input parameter.

Parameters
mixed$inputThe parameter to be quoted.
int | null$typeThe type of the parameter.
Returns
mixed Often string, but also int or float or similar depending on $input and platform

Definition at line 937 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getConnection().

◆ quoteColumnValuePairs()

TYPO3\CMS\Core\Database\Query\QueryBuilder::quoteColumnValuePairs ( array  $input)

Quotes an associative array of column-value so the column names can be safely used, even if the name is a reserved name.

Delimiting style depends on the underlying database platform that is being used.

Parameters
array$input
Returns
array

Definition at line 1031 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getConnection().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\values().

◆ quoteIdentifier()

◆ quoteIdentifiers()

TYPO3\CMS\Core\Database\Query\QueryBuilder::quoteIdentifiers ( array  $input)

Quotes an array of column names so it can be safely used, even if the name is a reserved name.

Delimiting style depends on the underlying database platform that is being used.

Parameters
array$input
Returns
array

Definition at line 966 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getConnection().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addGroupBy(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\groupBy().

◆ quoteIdentifiersForSelect()

TYPO3\CMS\Core\Database\Query\QueryBuilder::quoteIdentifiersForSelect ( array  $input)

Quotes an array of column names so it can be safely used, even if the name is a reserved name. Takes into account the special case of the * placeholder that can only be used in SELECT type statements.

Delimiting style depends on the underlying database platform that is being used.

Parameters
array$input
Returns
array
Exceptions

Definition at line 983 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\addSelect(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\select().

◆ resetQueryPart()

TYPO3\CMS\Core\Database\Query\QueryBuilder::resetQueryPart (   $queryPartName)

Resets a single SQL part.

Parameters
string$queryPartName
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 859 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\resetQueryPart().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\resetQueryPart().

◆ resetQueryParts()

TYPO3\CMS\Core\Database\Query\QueryBuilder::resetQueryParts ( array  $queryPartNames = null)

Resets SQL parts.

Parameters
array | null$queryPartNames
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 845 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\resetQueryParts().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\resetQueryParts().

◆ resetRestrictions()

TYPO3\CMS\Core\Database\Query\QueryBuilder::resetRestrictions ( )

◆ rightJoin()

TYPO3\CMS\Core\Database\Query\QueryBuilder::rightJoin ( string  $fromAlias,
string  $join,
string  $alias,
string  $condition = null 
)

Creates and adds a right join to the query.

Parameters
string$fromAliasThe alias that points to a from clause.
string$joinThe table name to join.
string$aliasThe alias of the join table.
string$conditionThe condition for the join.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 592 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\rightJoin().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\rightJoin().

◆ select()

TYPO3\CMS\Core\Database\Query\QueryBuilder::select ( string ...  $selects)

Specifies items that are to be returned in the query result. Replaces any previously specified selections, if any.

Parameters
string[]$selects
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 390 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifiersForSelect(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\select().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\select(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\selectLiteral().

◆ selectLiteral()

TYPO3\CMS\Core\Database\Query\QueryBuilder::selectLiteral ( string ...  $selects)

Specifies items that are to be returned in the query result. Replaces any previously specified selections, if any. This should only be used for literal SQL expressions as no quoting/escaping of any kind will be performed on the items.

Parameters
string[]$selects Literal SQL expressions to be selected. Warning: No quoting will be done!
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 420 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\select().

◆ set()

TYPO3\CMS\Core\Database\Query\QueryBuilder::set ( string  $key,
  $value,
bool  $createNamedParameter = true 
)

Sets a new value for a column in a bulk update query.

Parameters
string$keyThe column to set.
string$valueThe value, expression, placeholder, etc.
bool$createNamedParameterAutomatically create a named parameter for the value
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 613 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\createNamedParameter(), TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\set().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\set().

◆ setFirstResult()

TYPO3\CMS\Core\Database\Query\QueryBuilder::setFirstResult ( int  $firstResult)

Sets the position of the first result to retrieve (the "offset").

Parameters
int$firstResultThe first result to return.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 304 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\setFirstResult().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\setFirstResult().

◆ setMaxResults()

TYPO3\CMS\Core\Database\Query\QueryBuilder::setMaxResults ( int  $maxResults)

Sets the maximum number of results to retrieve (the "limit").

Parameters
int$maxResultsThe maximum number of results to retrieve.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 329 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\setMaxResults().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\setMaxResults().

◆ setParameter()

TYPO3\CMS\Core\Database\Query\QueryBuilder::setParameter (   $key,
  $value,
int  $type = null 
)

Sets a query parameter for the query being constructed.

Parameters
string | int$keyThe parameter position or name.
mixed$valueThe parameter value.
int | null$typeOne of the Connection::PARAM_* constants.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 231 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\setParameter().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\setParameter().

◆ setParameters()

TYPO3\CMS\Core\Database\Query\QueryBuilder::setParameters ( array  $params,
array  $types = [] 
)

Sets a collection of query parameters for the query being constructed.

Parameters
array$paramsThe query parameters to set.
array$typesThe query parameters types to set.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 246 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\setParameters().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\setParameters().

◆ setRestrictions()

◆ setValue()

TYPO3\CMS\Core\Database\Query\QueryBuilder::setValue ( string  $column,
  $value,
bool  $createNamedParameter = true 
)

Sets a value for a column in an insert query.

Parameters
string$columnThe column into which the value should be inserted.
string$valueThe value that should be inserted into the column.
bool$createNamedParameterAutomatically create a named parameter for the value
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 709 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\createNamedParameter(), TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\setValue().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\setValue().

◆ unquoteSingleIdentifier()

TYPO3\CMS\Core\Database\Query\QueryBuilder::unquoteSingleIdentifier ( string  $identifier)
protected

Unquote a single identifier (no dot expansion). Used to unquote the table names from the expressionBuilder so that the table can be found in the TCA definition.

Parameters
string$identifierThe identifier / table name
Returns
string The unquoted table name / identifier

Definition at line 1043 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\getConnection().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\getQueriedTables().

◆ update()

TYPO3\CMS\Core\Database\Query\QueryBuilder::update ( string  $update,
string  $alias = null 
)

Turns the query being built into a bulk update query that ranges over a certain table

Parameters
string$updateThe table whose rows are subject to the update.
string$aliasThe table alias used in the constructed query.
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 472 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteIdentifier(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\update().

Referenced by TYPO3\CMS\Core\Database\Query\QueryBuilder\update().

◆ values()

TYPO3\CMS\Core\Database\Query\QueryBuilder::values ( array  $values,
bool  $createNamedParameters = true 
)

Specifies values for an insert query indexed by column names. Replaces any previous values, if any.

Parameters
array$valuesThe values to specify for the insert query indexed by column names.
bool$createNamedParametersAutomatically create named parameters for all values
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 728 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\createNamedParameter(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\quoteColumnValuePairs().

◆ where()

TYPO3\CMS\Core\Database\Query\QueryBuilder::where (   $predicates)

Specifies one or more restrictions to the query result. Replaces any previously specified restrictions, if any.

Parameters
mixed,...$predicates
Returns
QueryBuilder This QueryBuilder instance.

Definition at line 630 of file QueryBuilder.php.

References TYPO3\CMS\Core\Database\Query\QueryBuilder\where().

Referenced by TYPO3\CMS\Backend\Tree\Pagetree\DataProvider\setWhereClause(), and TYPO3\CMS\Core\Database\Query\QueryBuilder\where().

Member Data Documentation

◆ $additionalRestrictions

TYPO3\CMS\Core\Database\Query\QueryBuilder::$additionalRestrictions
protected

◆ $concreteQueryBuilder

TYPO3\CMS\Core\Database\Query\QueryBuilder::$concreteQueryBuilder
protected

◆ $connection

TYPO3\CMS\Core\Database\Query\QueryBuilder::$connection
protected

◆ $restrictionContainer