php8.5
Home/ Manual/ pdo / pdostatement/ PDOStatement::setFetchMode

PDOStatement::setFetchMode

PHP function Edit on GitHub ✎

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

Set the default fetch mode for this statement

Description

PDOStatement::setFetchMode(int $mode): true
PDOStatement::setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): true
PDOStatement::setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, array|null $constructorArgs = null): true
PDOStatement::setFetchMode(int $mode = PDO::FETCH_INTO, object $object): true

Parameters

mode

The fetch mode must be one of the PDO::FETCH_* constants.

colno

Column number.

class

Class name.

constructorArgs

Constructor arguments. As of PHP 8.5.0, string keys act as named arguments. To pass a variable by reference, use a reference element: $constructorArgs = [&$valByRef].

object

Object.

Return Values

Always

Errors/Exceptions

As of PHP 8.5.0, an Error is thrown if this method is called during a call to PDOStatement::fetch, PDOStatement::fetchObject, or PDOStatement::fetchAll.

Changelog

VersionDescription
8.5.0The constructorArgs for PDO::FETCH_CLASS now follow CUFA (call_user_func_array()) semantics: string keys act as named arguments, and automatic wrapping of by-value arguments for by-reference parameters has been removed.
8.5.0Calling this method during a call to PDOStatement::fetch, PDOStatement::fetchObject, or PDOStatement::fetchAll now throws an Error.

Examples

Setting the fetch mode

The following example demonstrates how PDOStatement::setFetchMode changes the default fetch mode for a PDOStatement object.

php
<?php
$stmt = $dbh->query('SELECT name, colour, calories FROM fruit');
$stmt->setFetchMode(PDO::FETCH_NUM);
foreach ($stmt as $row) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
}

The above example will output something similar to:

output
apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150

Source: reference/pdo/pdostatement/setfetchmode.xml · from the official PHP manual (php/doc-en)