Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function DatabaseStatementPrefetch::execute

Executes a prepared statement.

Parameters

$args: An array of values with as many elements as there are bound parameters in the SQL statement being executed.

$options: An array of options for this query.

Return value

TRUE on success, or FALSE on failure.

Overrides DatabaseStatementInterface::execute

1 call to DatabaseStatementPrefetch::execute()
DatabaseStatement_sqlite::execute in includes/database/sqlite/database.inc
Executes a prepared statement.
1 method overrides DatabaseStatementPrefetch::execute()
DatabaseStatement_sqlite::execute in includes/database/sqlite/database.inc
Executes a prepared statement.

File

includes/database/prefetch.inc, line 144

Class

DatabaseStatementPrefetch
An implementation of DatabaseStatementInterface that prefetches all data.

Code

public function execute($args = array(), $options = array()) {
 if (isset($options['fetch'])) {
 if (is_string ($options['fetch'])) {
 // Default to an object. Note: db fields will be added to the object
 // before the constructor is run. If you need to assign fields after
 // the constructor is run, see http://drupal.org/node/315092.
 $this->setFetchMode (PDO::FETCH_CLASS, $options['fetch']);
 }
 else {
 $this->setFetchMode ($options['fetch']);
 }
 }
 $logger = $this->dbh 
 ->getLogger ();
 if (!empty($logger)) {
 $query_start = microtime (TRUE);
 }
 // Prepare the query.
 $statement = $this->getStatement ($this->queryString , $args);
 if (!$statement) {
 $this->throwPDOException ();
 }
 $return = $statement->execute ($args);
 if (!$return) {
 $this->throwPDOException ();
 }
 // Fetch all the data from the reply, in order to release any lock
 // as soon as possible.
 $this->rowCount  = $statement->rowCount ();
 $this->data  = $statement->fetchAll (PDO::FETCH_ASSOC);
 // Destroy the statement as soon as possible. See
 // DatabaseConnection_sqlite::PDOPrepare() for explanation.
 unset($statement);
 $this->resultRowCount  = count ($this->data );
 if ($this->resultRowCount ) {
 $this->columnNames  = array_keys ($this->data [0]);
 }
 else {
 $this->columnNames  = array();
 }
 if (!empty($logger)) {
 $query_end = microtime (TRUE);
 $logger->log ($this, $args, $query_end - $query_start);
 }
 // Initialize the first row in $this->currentRow.
 $this->next ();
 return $return;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.