You are here

public function StatementPrefetch::fetchAll in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Database/StatementPrefetch.php \Drupal\Core\Database\StatementPrefetch::fetchAll()

Returns an array containing all of the result set rows.

Parameters

$mode: One of the PDO::FETCH_* constants.

$column_index: If $mode is PDO::FETCH_COLUMN, the index of the column to fetch.

$constructor_arguments: If $mode is PDO::FETCH_CLASS, the arguments to pass to the constructor.

Return value

An array of results.

Overrides StatementInterface::fetchAll

File

core/lib/Drupal/Core/Database/StatementPrefetch.php, line 518

Class

StatementPrefetch
An implementation of StatementInterface that prefetches all data.

Namespace

Drupal\Core\Database

Code

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

  // 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;
}