Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Database/StatementPrefetch.php \Drupal\Core\Database\StatementPrefetch::setFetchMode()
  2. 9 core/lib/Drupal/Core/Database/StatementPrefetch.php \Drupal\Core\Database\StatementPrefetch::setFetchMode()

Sets the default fetch mode for this statement.

See http://php.net/manual/pdo.constants.php for the definition of the constants used.

Parameters

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

$a1: An option depending of the fetch mode specified by $mode:

  • for \PDO::FETCH_COLUMN, the index of the column to fetch
  • for \PDO::FETCH_CLASS, the name of the class to create
  • for \PDO::FETCH_INTO, the object to add the data to

$a2: If $mode is \PDO::FETCH_CLASS, the optional arguments to pass to the constructor.

Overrides StatementInterface::setFetchMode

1 call to StatementPrefetch::setFetchMode()
StatementPrefetch::execute in core/lib/Drupal/Core/Database/StatementPrefetch.php
Executes a prepared statement.

File

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

Class

StatementPrefetch
An implementation of StatementInterface that pre-fetches all data.

Namespace

Drupal\Core\Database

Code

public function setFetchMode($mode, $a1 = NULL, $a2 = []) {
  $this->defaultFetchStyle = $mode;
  switch ($mode) {
    case \PDO::FETCH_CLASS:
      $this->defaultFetchOptions['class'] = $a1;
      if ($a2) {
        $this->defaultFetchOptions['constructor_args'] = $a2;
      }
      break;
    case \PDO::FETCH_COLUMN:
      $this->defaultFetchOptions['column'] = $a1;
      break;
    case \PDO::FETCH_INTO:
      $this->defaultFetchOptions['object'] = $a1;
      break;
  }

  // Set the values for the next fetch.
  $this->fetchStyle = $this->defaultFetchStyle;
  $this->fetchOptions = $this->defaultFetchOptions;
}