/Drupal 7

public function DatabaseStatementPrefetch::fetchAllAssoc

public DatabaseStatementPrefetch::fetchAllAssoc($key, $fetch_style = NULL)

Returns the result set as an associative array keyed by the given field.

If the given key appears multiple times, later records will overwrite earlier ones.


$key: The name of the field on which to index the array.

$fetch: The fetchmode to use. If set to PDO::FETCH_ASSOC, PDO::FETCH_NUM, or PDO::FETCH_BOTH the returned value with be an array of arrays. For any other value it will be an array of objects. By default, the fetch mode set for the query will be used.

Return value

An associative array, or an empty array if there is no result set.

Overrides DatabaseStatementInterface::fetchAllAssoc


includes/database/prefetch.inc, line 481
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…


An implementation of DatabaseStatementInterface that prefetches all data.


public function fetchAllAssoc($key, $fetch_style = NULL) {
  $this->fetchStyle = isset($fetch_style) ? $fetch_style : $this->defaultFetchStyle;
  $this->fetchOptions = $this->defaultFetchOptions;

  $result = array();
  // Traverse the array as PHP would have done.
  while (isset($this->currentRow)) {
    // Grab the row in its raw PDO::FETCH_ASSOC format.
    $row = $this->currentRow;
    // Grab the row in the format specified above.
    $result_row = $this->current();
    $result[$this->currentRow[$key]] = $result_row;

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

© 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.