8.5.x database.inc db_query_range($query, $from, $count, array $args = [], array $options = [])
8.0.x database.inc db_query_range($query, $from, $count, array $args = array(), array $options = array())
8.1.x database.inc db_query_range($query, $from, $count, array $args = array(), array $options = array())
8.2.x database.inc db_query_range($query, $from, $count, array $args = array(), array $options = array())
8.3.x database.inc db_query_range($query, $from, $count, array $args = [], array $options = [])
8.4.x database.inc db_query_range($query, $from, $count, array $args = [], array $options = [])
8.6.x database.inc db_query_range($query, $from, $count, array $args = [], array $options = [])
4.6.x database.pgsql.inc db_query_range($query)
4.6.x database.mysql.inc db_query_range($query)
4.7.x database.pgsql.inc db_query_range($query)
4.7.x database.mysqli.inc db_query_range($query)
4.7.x database.mysql.inc db_query_range($query)
5.x database.pgsql.inc db_query_range($query)
5.x database.mysqli.inc db_query_range($query)
5.x database.mysql.inc db_query_range($query)
6.x database.pgsql.inc db_query_range($query)
6.x database.mysqli.inc db_query_range($query)
6.x database.mysql.inc db_query_range($query)
7.x database.inc db_query_range($query, $from, $count, array $args = array(), array $options = array())

Executes a query against the active database, restricted to a range.


string $query: The prepared statement query to run. Although it will accept both named and unnamed placeholders, named placeholders are strongly preferred as they are more self-documenting.

$from: The first record from the result set to return.

$count: The number of records to return from the result set.

array $args: An array of values to substitute into the query. If the query uses named placeholders, this is an associative array in any order. If the query uses unnamed placeholders (?), this is an indexed array and the order must match the order of placeholders in the query string.

array $options: An array of options to control how the query operates.

Return value

\Drupal\Core\Database\StatementInterface A prepared statement object, already executed.


as of Drupal 8.0.x, will be removed in Drupal 9.0.0. Instead, get a database connection injected into your service from the container and call queryRange() on it. For example, $injected_database->queryRange($query, $from, $count, $args, $options);

See also



Related topics

2 calls to db_query_range()
DbLogTest::verifyLinkEscaping in core/modules/dblog/src/Tests/DbLogTest.php
Tests the escaping of links in the operation row of a database log detail page.
StorageTest::testImmutableFormLegacyProtection in core/modules/system/src/Tests/Form/StorageTest.php
Verify that existing contrib code cannot overwrite immutable form state.
1 string reference to 'db_query_range'
Error::decodeException in core/lib/Drupal/Core/Utility/Error.php
Decodes an exception and retrieves the correct caller.


core/includes/database.inc, line 94
Core systems for the database layer.


function db_query_range($query, $from, $count, array $args = [], array $options = []) {
  if (empty($options['target'])) {
    $options['target'] = 'default';
  return Database::getConnection($options['target'])
    ->queryRange($query, $from, $count, $args, $options);