class Query
Same name in this branch
- 11.x core/modules/workspaces/src/EntityQuery/Query.php \Drupal\workspaces\EntityQuery\Query
- 11.x core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query
- 11.x core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query
- 11.x core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query
- 11.x core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query
Same name in other branches
- 7.x includes/database/query.inc \Query
- 9 core/modules/workspaces/src/EntityQuery/Query.php \Drupal\workspaces\EntityQuery\Query
- 9 core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query
- 9 core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query
- 9 core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query
- 9 core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query
- 9 core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query
- 8.9.x core/modules/workspaces/src/EntityQuery/Query.php \Drupal\workspaces\EntityQuery\Query
- 8.9.x core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query
- 8.9.x core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query
- 8.9.x core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query
- 8.9.x core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query
- 8.9.x core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query
- 10 core/modules/workspaces/src/EntityQuery/Query.php \Drupal\workspaces\EntityQuery\Query
- 10 core/lib/Drupal/Core/Config/Entity/Query/Query.php \Drupal\Core\Config\Entity\Query\Query
- 10 core/lib/Drupal/Core/Database/Query/Query.php \Drupal\Core\Database\Query\Query
- 10 core/lib/Drupal/Core/Entity/Query/Sql/Query.php \Drupal\Core\Entity\Query\Sql\Query
- 10 core/lib/Drupal/Core/Entity/Query/Null/Query.php \Drupal\Core\Entity\Query\Null\Query
- 10 core/lib/Drupal/Core/Entity/KeyValueStore/Query/Query.php \Drupal\Core\Entity\KeyValueStore\Query\Query
Base class for query builders.
Note that query builders use PHP's magic __toString() method to compile the query object into a prepared statement.
Hierarchy
- class \Drupal\Core\Database\Query\Query implements \Drupal\Core\Database\Query\PlaceholderInterface
Expanded class hierarchy of Query
93 string references to 'Query'
- AjaxFormCacheTest::testQueryString in core/
tests/ Drupal/ FunctionalJavascriptTests/ Ajax/ AjaxFormCacheTest.php - Tests AJAX forms on pages with a query string.
- BasicTest::testWizardDefaultValues in core/
modules/ views/ tests/ src/ Functional/ Wizard/ BasicTest.php - Tests default plugin values are populated from the wizard form.
- batch_process in core/
includes/ form.inc - Processes the batch.
- BlockContentTest::getExpectedDocument in core/
modules/ jsonapi/ tests/ src/ Functional/ BlockContentTest.php - Returns the expected JSON:API document for the entity.
- CachePluginBase::cacheGet in core/
modules/ views/ src/ Plugin/ views/ cache/ CachePluginBase.php - Retrieve data from the cache.
File
-
core/
lib/ Drupal/ Core/ Database/ Query/ Query.php, line 14
Namespace
Drupal\Core\Database\QueryView source
abstract class Query implements PlaceholderInterface {
/**
* The connection object on which to run this query.
*
* @var \Drupal\Core\Database\Connection
*/
protected $connection;
/**
* The target of the connection object.
*
* @var string
*/
protected $connectionTarget;
/**
* The key of the connection object.
*
* @var string
*/
protected $connectionKey;
/**
* The query options to pass on to the connection object.
*
* @var array
*/
protected $queryOptions;
/**
* A unique identifier for this query object.
*
* @var string
*/
protected $uniqueIdentifier;
/**
* The placeholder counter.
*
* @var int
*/
protected $nextPlaceholder = 0;
/**
* An array of comments that can be prepended to a query.
*
* @var array
*/
protected $comments = [];
/**
* Constructs a Query object.
*
* @param \Drupal\Core\Database\Connection $connection
* Database connection object.
* @param array $options
* Array of query options.
*/
public function __construct(Connection $connection, $options) {
$this->uniqueIdentifier = uniqid('', TRUE);
$this->connection = $connection;
$this->connectionKey = $this->connection
->getKey();
$this->connectionTarget = $this->connection
->getTarget();
$this->queryOptions = $options;
}
/**
* Implements the magic __sleep function to disconnect from the database.
*/
public function __sleep() : array {
$keys = get_object_vars($this);
unset($keys['connection']);
return array_keys($keys);
}
/**
* Implements the magic __wakeup function to reconnect to the database.
*/
public function __wakeup() : void {
$this->connection = Database::getConnection($this->connectionTarget, $this->connectionKey);
}
/**
* Implements the magic __clone function.
*/
public function __clone() {
$this->uniqueIdentifier = uniqid('', TRUE);
}
/**
* Runs the query against the database.
*
* @return \Drupal\Core\Database\StatementInterface|null
* A prepared statement, or NULL if the query is not valid.
*/
protected abstract function execute();
/**
* Implements PHP magic __toString method to convert the query to a string.
*
* The toString operation is how we compile a query object to a prepared
* statement.
*
* @return string
* A prepared statement query string for this object.
*
* @throws \BadMethodCallException
* Thrown when the operation is a Merge or the operation is not implemented,
* as in test.
*/
public abstract function __toString();
/**
* Returns a unique identifier for this object.
*/
public function uniqueIdentifier() {
return $this->uniqueIdentifier;
}
/**
* Gets the next placeholder value for this query object.
*
* @return int
* The next placeholder value.
*/
public function nextPlaceholder() {
return $this->nextPlaceholder++;
}
/**
* Adds a comment to the query.
*
* By adding a comment to a query, you can more easily find it in your
* query log or the list of active queries on an SQL server. This allows
* for easier debugging and allows you to more easily find where a query
* with a performance problem is being generated.
*
* The comment string will be sanitized to remove * / and other characters
* that may terminate the string early so as to avoid SQL injection attacks.
*
* @param $comment
* The comment string to be inserted into the query.
*
* @return $this
*/
public function comment($comment) {
$this->comments[] = $comment;
return $this;
}
/**
* Returns a reference to the comments array for the query.
*
* Because this method returns by reference, alter hooks may edit the comments
* array directly to make their changes. If just adding comments, however, the
* use of comment() is preferred.
*
* Note that this method must be called by reference as well:
* @code
* $comments =& $query->getComments();
* @endcode
*
* @return array
* A reference to the comments array structure.
*/
public function &getComments() {
return $this->comments;
}
/**
* Gets the database connection to be used for the query.
*
* @return \Drupal\Core\Database\Connection
* The database connection to be used for the query.
*/
public function getConnection() {
return $this->connection;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
Query::$comments | protected | property | An array of comments that can be prepended to a query. | ||
Query::$connection | protected | property | The connection object on which to run this query. | ||
Query::$connectionKey | protected | property | The key of the connection object. | ||
Query::$connectionTarget | protected | property | The target of the connection object. | ||
Query::$nextPlaceholder | protected | property | The placeholder counter. | ||
Query::$queryOptions | protected | property | The query options to pass on to the connection object. | ||
Query::$uniqueIdentifier | protected | property | A unique identifier for this query object. | ||
Query::comment | public | function | Adds a comment to the query. | ||
Query::execute | abstract protected | function | Runs the query against the database. | 7 | |
Query::getComments | public | function | Returns a reference to the comments array for the query. | ||
Query::getConnection | public | function | Gets the database connection to be used for the query. | ||
Query::nextPlaceholder | public | function | Gets the next placeholder value for this query object. | Overrides PlaceholderInterface::nextPlaceholder | |
Query::uniqueIdentifier | public | function | Returns a unique identifier for this object. | Overrides PlaceholderInterface::uniqueIdentifier | |
Query::__clone | public | function | Implements the magic __clone function. | 1 | |
Query::__construct | public | function | Constructs a Query object. | 7 | |
Query::__sleep | public | function | Implements the magic __sleep function to disconnect from the database. | ||
Query::__toString | abstract public | function | Implements PHP magic __toString method to convert the query to a string. | 11 | |
Query::__wakeup | public | function | Implements the magic __wakeup function to reconnect to the database. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.