PDOStatement::fetch — Récupère la ligne suivante du jeu de résultats (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
PDOStatement mixte :: fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
Obtient la ligne suivante du jeu de résultats associé à un objet PDOStatement. Le paramètre fetch_style détermine la manière dont le POD renvoie les lignes.
fetch_style
Contrôle la manière dont la ligne suivante est renvoyée à l'appelant. Cette valeur doit faire partie de la série de constantes PDO::FETCH_* et la valeur par défaut est la valeur de PDO::ATTR_DEFAULT_FETCH_MODE (la valeur par défaut est PDO::FETCH_BOTH).
PDO::FETCH_ASSOC : renvoie un tableau indexé par le nom de la colonne du jeu de résultats
PDO::FETCH_BOTH (par défaut) : renvoie un tableau indexé par le nom de colonne du jeu de résultats et le numéro de colonne commençant par 0
PDO::FETCH_BOUND : renvoie TRUE
et attribue la valeur de colonne dans le jeu de résultats à la variable PHP liée par la méthode PDOStatement::bindColumn().
PDO::FETCH_CLASS : renvoie une nouvelle instance de la classe demandée, mappant les noms de colonnes dans le jeu de résultats aux noms d'attributs correspondants dans la classe. Si fetch_style
contient PDO::FETCH_CLASSTYPE (par exemple : PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE ), le nom de la classe est déterminé par la valeur de la première colonne
PDO::FETCH_INTO : met à jour une instance existante de la classe demandée, mappant les colonnes du jeu de résultats aux attributs nommés dans la classe
PDO::FETCH_LAZY : utilisez PDO::FETCH_BOTH et PDO::FETCH_OBJ en combinaison pour créer un nom de variable d'objet pour l'accès
PDO::FETCH_NUM : renvoie un tableau indexé sur le numéro de colonne du jeu de résultats commençant par 0
PDO::FETCH_OBJ : Renvoie un objet anonyme dont le nom d'attribut correspond au nom de colonne du jeu de résultats
curseur_orientation Pour un curseur défilant représenté par un objet PDOStatement, cette valeur détermine quelle ligne sera renvoyée à l'appelant. Cette valeur doit faire partie de la série de constantes PDO::FETCH_ORI_* et la valeur par défaut est PDO::FETCH_ORI_NEXT. Pour que l'objet PDOStatement utilise un curseur déroulant, vous devez définir l'attribut PDO::ATTR_CURSOR sur PDO::CURSOR_SCROLL lorsque vous utilisez PDO::prepare() pour préparer l'instruction SQL.
offsetPour un curseur défilant représenté par un objet PDOStatement avec le paramètre curseur_orientation défini sur PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro de ligne absolu de la ligne du jeu de résultats à récupérer. Pour un curseur défilant représenté par un objet PDOStatement avec le paramètre curseur_orientation défini sur PDO::FETCH_ORI_REL, cette valeur spécifie la position de la ligne à récupérer par rapport au curseur avant d'appeler PDOStatement::fetch()
La valeur renvoyée par cette fonction (méthode) en cas de succès dépend du type d'extraction. Dans tous les cas, l'échec renvoie FALSE.
<?php$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");$sth->execute();/* Utiliser PDOStatement::fetch style*/print("PDO::FETCH_ASSOC: ") ;print("Renvoyer la ligne suivante sous forme de tableau indexé par nom de colonnen");$result = $sth->fetch(PDO::FETCH_ASSOC);print_r($result);print("n");print("PDO::FETCH_BOTH: ");print("Renvoyer la ligne suivante sous forme de tableau indexé par les deux colonnes nom et numéron");$result = $sth->fetch(PDO::FETCH_BOTH);print_r($result);print("n");print("PDO::FETCH_LAZY: ");print("Renvoyer la ligne suivante en tant qu'objet anonyme avec les noms de colonnes comme propriétésn");$result = $sth->fetch(PDO::FETCH_LAZY);print_r($result);print("n");print("PDO::FETCH_OBJ: ");print("Renvoyer la ligne suivante en tant qu'objet anonyme avec les noms de colonnes comme propriétésn");$result = $sth->fetch(PDO::FETCH_OBJ);print $result->NOM;print("n");?>
L'exemple ci-dessus affichera :
PDO::FETCH_ASSOC : renvoie la ligne suivante sous forme de tableau indexé par le nom de la colonneArray ([NOM] => pomme [COLOUR] => rouge)PDO::FETCH_BOTH : renvoie la ligne suivante sous la forme d'un tableau indexé par le nom de la colonne et le nombreArray([NOM ] => banane [0] => banane [COLOUR] => jaune [1] => jaune)PDO::FETCH_LAZY : renvoie la ligne suivante en tant qu'objet anonyme avec noms de colonnes comme propriétésPDORow Object ([NAME] => orange [COLOUR] => orange)PDO::FETCH_OBJ : renvoie la ligne suivante en tant qu'objet anonyme avec les noms de colonnes comme propriétésskiwi
<?phpfunction readDataForwards($dbh) { $sql = 'SELECT main, gagnée, pari FROM mynumbers ORDER BY BET'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO: :CURSOR_SCROLL)); $stmt->execute(); tandis que ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { $data = $row[0] . n"; print $data; } $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}fonction readDataBackwards($dbh) { $sql = 'SELECT main, gagnée, pari FROM mynumbers ORDER BY pari'; try { $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL) ); $stmt->exécuter(); $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST); faire { $data = $row[0] . "n" ; imprimer $data ; } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR)); $stmt = null; } catch (PDOException $e) { print $e->getMessage(); }}print "Lecture en avant :n";readDataForwards($conn);print "Lecture en arrière :n";readDataBackwards($conn);?>
L'exemple ci-dessus affichera :
Lecture en avant :21 10 516 0 519 20 10Lecture en arrière :19 20 1016 0 521 10 5