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 — Définit le mode de récupération par défaut pour cette requête

Description

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

Liste de paramètres

mode

Le mode de récupération doit être une des constantes PDO::FETCH_*.

colno

Numéro de la colonne.

class

Nom de la classe.

constructorArgs

Arguments du constructeur. À partir de PHP 8.5.0, les clés de type chaîne de caractères font office d'arguments nommés. Pour passer une variable par référence, il faut utiliser un élément de référence : $constructorArgs = [&$valByRef].

object

Objet.

Valeurs de retour

Retourne toujours true.

Erreurs / Exceptions

À partir de PHP 8.5.0, une Error est levée si cette méthode est appelée pendant un appel à PDOStatement::fetch(), PDOStatement::fetchObject() ou PDOStatement::fetchAll().

Historique

Version Description
8.5.0 Les constructorArgs pour PDO::FETCH_CLASS suivent désormais la sémantique CUFA (call_user_func_array()) : les clés de type chaîne de caractères font office d'arguments nommés, et l'encapsulation automatique des arguments passés par valeur pour les paramètres par référence a été supprimée.
8.5.0 L'appel de cette méthode pendant un appel à PDOStatement::fetch(), PDOStatement::fetchObject() ou PDOStatement::fetchAll() lève désormais une Error.
8.4.0 Le type de retour est maintenant true, auparavant il était bool.

Exemples

Exemple #1 Définition du mode de récupération

L'exemple suivant montre comment PDOStatement::setFetchMode() modifie le mode de récupération par défaut pour un objet 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";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

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

To Top