PDOStatement::setFetchMode
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
Set the default fetch mode for this statement
Description
Parameters
modeThe fetch mode must be one of the
PDO::FETCH_*constants.colnoColumn number.
classClass name.
constructorArgsConstructor 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].objectObject.
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
| Version | Description |
|---|---|
| 8.5.0 | The 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.0 | Calling 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
$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:
apple red 150
banana yellow 250
orange orange 300
kiwi brown 75
lemon yellow 25
pear green 150