function Connection::queryTemporary
Same name in this branch
- 10 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::queryTemporary()
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::queryTemporary()
Same name and namespace in other branches
- 9 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::queryTemporary()
- 9 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::queryTemporary()
- 9 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::queryTemporary()
- 9 core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::queryTemporary()
- 9 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::queryTemporary()
- 8.9.x core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::queryTemporary()
- 8.9.x core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection::queryTemporary()
- 8.9.x core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection::queryTemporary()
- 8.9.x core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::queryTemporary()
- 8.9.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::queryTemporary()
- 11.x core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::queryTemporary()
- 11.x core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::queryTemporary()
- 11.x core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::queryTemporary()
Runs a SELECT query and stores its results in a temporary table.
Use this as a substitute for ->query() when the results need to stored in a temporary table. Temporary tables exist for the duration of the page request. User-supplied arguments to the query should be passed in as separate parameters so that they can be properly escaped to avoid SQL injection attacks.
Note that if you need to know how many results were returned, you should do a SELECT COUNT(*) on the temporary table afterwards.
Parameters
string $query: A string containing a normal SELECT SQL query.
array $args: (optional) An array of values to substitute into the query at placeholder markers.
array $options: (optional) An associative array of options to control how the query is run. See the documentation for DatabaseConnection::defaultOptions() for details.
Return value
string The name of the temporary table.
Overrides SupportsTemporaryTablesInterface::queryTemporary
File
-
core/
modules/ sqlite/ src/ Driver/ Database/ sqlite/ Connection.php, line 368
Class
- Connection
- SQLite implementation of \Drupal\Core\Database\Connection.
Namespace
Drupal\sqlite\Driver\Database\sqliteCode
public function queryTemporary($query, array $args = [], array $options = []) {
$tablename = 'db_temporary_' . uniqid();
$this->query('CREATE TEMPORARY TABLE ' . $tablename . ' AS ' . $query, $args, $options);
// Temporary tables always live in the temp database, which means that
// they cannot be fully qualified table names since they do not live
// in the main SQLite database. We provide the fully-qualified name
// ourselves to prevent Drupal from applying prefixes.
// @see https://www.sqlite.org/lang_createtable.html
return 'temp.' . $tablename;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.