Same name and namespace in other branches
- 4.7.x includes/database.pgsql.inc \db_query_temporary()
- 4.7.x includes/database.mysqli.inc \db_query_temporary()
- 4.7.x includes/database.mysql.inc \db_query_temporary()
- 5.x includes/database.pgsql.inc \db_query_temporary()
- 5.x includes/database.mysqli.inc \db_query_temporary()
- 5.x includes/database.mysql.inc \db_query_temporary()
- 6.x includes/database.pgsql.inc \db_query_temporary()
- 6.x includes/database.mysqli.inc \db_query_temporary()
- 6.x includes/database.mysql.inc \db_query_temporary()
- 8.9.x core/includes/database.inc \db_query_temporary()
- 8.0.x core/includes/database.inc \db_query_temporary()
- 8.1.x core/includes/database.inc \db_query_temporary()
- 8.2.x core/includes/database.inc \db_query_temporary()
- 8.3.x core/includes/database.inc \db_query_temporary()
- 8.4.x core/includes/database.inc \db_query_temporary()
- 8.5.x core/includes/database.inc \db_query_temporary()
- 8.6.x core/includes/database.inc \db_query_temporary()
- 8.7.x core/includes/database.inc \db_query_temporary()
- 8.8.x core/includes/database.inc \db_query_temporary()
Executes a SELECT query string and saves the result set to a temporary table.
The execution of the query string happens against the active database.
Parameters
$query: The prepared SELECT statement query to run. Although it will accept both named and unnamed placeholders, named placeholders are strongly preferred as they are more self-documenting.
$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.
$options: An array of options to control how the query operates.
Return value
The name of the temporary table.
See also
DatabaseConnection::defaultOptions()
Related topics
2 calls to db_query_temporary()
- DatabaseTemporaryQueryTestCase::testTemporaryQuery in modules/
simpletest/ tests/ database_test.test - Confirm that temporary tables work and are limited to one request.
- database_test_db_query_temporary in modules/
simpletest/ tests/ database_test.module - Run a db_query_temporary and output the table name and its number of rows.
File
- includes/
database/ database.inc, line 2524 - Core systems for the database layer.
Code
function db_query_temporary($query, array $args = array(), array $options = array()) {
if (empty($options['target'])) {
$options['target'] = 'default';
}
return Database::getConnection($options['target'])
->queryTemporary($query, $args, $options);
}
Comments
No leading whitespace
The SELECT keyword must start the query with no leading whitespace, at least until this issues is fixed in d8 and backported to d7.
https://drupal.org/node/1868972
max_heap_table_size
If you run into a temporary table size limit on MySQL and don't have access to your configuration files, something along these lines might work:
db_query('set max_heap_table_size = 536870912');