public function DatabaseConnection_sqlite::queryTemporary

public DatabaseConnection_sqlite::queryTemporary($query, array $args = array(), array $options = array())

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

$query: A string containing a normal SELECT SQL query.

$args: An array of values to substitute into the query at placeholder markers.

$options: An associative array of options to control how the query is run. See the documentation for DatabaseConnection::defaultOptions() for details.

Return value

The name of the temporary table.

Overrides DatabaseConnection::queryTemporary

File

includes/database/sqlite/database.inc, line 245
Database interface code for SQLite embedded database engine.

Class

DatabaseConnection_sqlite
Specific SQLite implementation of DatabaseConnection.

Code

public function queryTemporary($query, array $args = array(), array $options = array()) {
  // Generate a new temporary table name and protect it from prefixing.
  // SQLite requires that temporary tables to be non-qualified.
  $tablename = $this->generateTemporaryTableName();
  $prefixes = $this->prefixes;
  $prefixes[$tablename] = '';
  $this->setPrefix($prefixes);

  $this->query('CREATE TEMPORARY TABLE ' . $tablename . ' AS ' . $query, $args, $options);
  return $tablename;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!database!sqlite!database.inc/function/DatabaseConnection_sqlite::queryTemporary/7.x