File

includes/database/prefetch.inc, line 430
Database interface code for engines that need complete control over their result sets. For example, SQLite will prefix some column names by the name of the table. We post-process the data, by renaming the column names using the same convention as…

Class

DatabaseStatementPrefetch
An implementation of DatabaseStatementInterface that prefetches all data.

Code

public function fetchAll($fetch_style = NULL, $fetch_column = NULL, $constructor_args = NULL) {
  $this->fetchStyle = isset($fetch_style) ? $fetch_style : $this->defaultFetchStyle;
  $this->fetchOptions = $this->defaultFetchOptions;
  if (isset($fetch_column)) {
    $this->fetchOptions['column'] = $fetch_column;
  }
  if (isset($constructor_args)) {
    $this->fetchOptions['constructor_args'] = $constructor_args;
  }
  $result = array();

  // Traverse the array as PHP would have done.
  while (isset($this->currentRow)) {

    // Grab the row in the format specified above.
    $result[] = $this
      ->current();
    $this
      ->next();
  }

  // Reset the fetch parameters to the value stored using setFetchMode().
  $this->fetchStyle = $this->defaultFetchStyle;
  $this->fetchOptions = $this->defaultFetchOptions;
  return $result;
}