PDOStatement::setFetchMode
PHP Manual
PHP Manual»PDOStatement»PDOStatement::setFetchMode

PDOStatement::setFetchMode

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

PDOStatement::setFetchMode — Establece el modo de recuperación por defecto para esta consulta

Descripción

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

Parámetros

mode

El modo de recuperación debe ser una de las constantes PDO::FETCH_*.

colno

Número de la columna.

class

Nombre de la clase.

constructorArgs

Argumentos del constructor. A partir de PHP 8.5.0, las claves de tipo string actúan como argumentos con nombre. Para pasar una variable por referencia, se utiliza un elemento de referencia: $constructorArgs = [&$valByRef].

object

Objeto.

Valores devueltos

Retorna siempre true.

Errores/Excepciones

A partir de PHP 8.5.0, se lanza un Error si este método es llamado durante una llamada a PDOStatement::fetch(), PDOStatement::fetchObject() o PDOStatement::fetchAll().

Historial de cambios

Versión Descripción
8.5.0 El constructorArgs para PDO::FETCH_CLASS ahora sigue la semántica CUFA (call_user_func_array()): las claves de tipo string actúan como argumentos con nombre, y la envoltura automática de argumentos por valor para parámetros por referencia ha sido eliminada.
8.5.0 Llamar a este método durante una llamada a PDOStatement::fetch(), PDOStatement::fetchObject() o PDOStatement::fetchAll() ahora lanza un Error.
8.4.0 El tipo de retorno es ahora true, anteriormente era bool.

Ejemplos

Ejemplo #1 Definición del modo de recuperación

El siguiente ejemplo muestra cómo PDOStatement::setFetchMode() modifica el modo de recuperación por defecto para un objeto PDOStatement.

<?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";
}
?>

Resultado del ejemplo anterior es similar a:

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

To Top