PDOStatement::fetch
PDOStatement::fetch — Récupère la ligne suivante d'un jeu de résultats (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
Description
Syntaxe
mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
Récupère la ligne suivante d'un jeu de résultats associé à un objet PDOStatement. Le paramètre fetch_style détermine comment PDO renvoie la ligne.
Parameters
fetch_style
Contrôle la manière dont la ligne suivante sera renvoyée à l'appelant. Cette valeur doit être l'une des constantes PDO::FETCH_*, avec pour valeur par défaut celle de PDO::ATTR_DEFAULT_FETCH_MODE (qui est PDO::FETCH_BOTH par défaut).
PDO::FETCH_ASSOC: renvoie un tableau indexé par les noms des colonnes du jeu de résultats
PDO::FETCH_BOTH(par défaut) : renvoie un tableau indexé à la fois par les noms des colonnes du jeu de résultats et par des numéros de colonne commençant à 0
PDO::FETCH_BOUND: renvoie
TRUE, et affecte les valeurs des colonnes du jeu de résultats aux variables PHP liées par la méthode PDOStatement::bindColumn().PDO::FETCH_CLASS: renvoie une nouvelle instance de la classe demandée, en associant les colonnes du jeu de résultats aux noms de propriétés correspondants dans la classe. Si
fetch_stylecontient 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 colonnePDO::FETCH_INTO: met à jour une instance existante de la classe demandée, en mappant les colonnes du jeu de résultats aux propriétés nommées de la classe
PDO::FETCH_LAZY: utilisé en combinaison avecPDO::FETCH_BOTHetPDO::FETCH_OBJ, crée des noms de variables d'objet pour l'accès
PDO::FETCH_NUM: retourne un tableau indexé par les numéros de colonne du jeu de résultats commençant à 0
PDO::FETCH_OBJ: retourne un objet anonyme dont les noms des propriétés correspondent aux noms des colonnes du jeu de résultats
cursor_orientation
Pour un curseur défilable représenté par un objet PDOStatement, cette valeur détermine quelle ligne sera retournée à l'appelant. Cette valeur doit être l'une des constantes PDO::FETCH_ORI_*, avec PDO::FETCH_ORI_NEXT par défaut. Pour que l'objet PDOStatement utilise un curseur défilable, vous devez définir l'attribut PDO::ATTR_CURSOR sur PDO::CURSOR_SCROLL lors de la préparation de la requête SQL avec PDO::prepare().
offset
Pour un curseur défilable représenté par un objet PDOStatement avec le paramètre cursor_orientation défini sur PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro de ligne absolu de la ligne à récupérer dans le jeu de résultats.
Pour un curseur défilable représenté par un objet PDOStatement avec le paramètre cursor_orientation défini sur PDO::FETCH_ORI_REL, cette valeur spécifie la position de la ligne à récupérer par rapport à la position du curseur avant l'appel à PDOStatement::fetch().
Valeurs de retour
La valeur renvoyée par cette fonction (méthode) en cas de succès dépend du type de récupération. Dans tous les cas, FALSE est renvoyé en cas d'échec.
Exemples
Récupérer des lignes avec différents styles de récupération
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* 运用 PDOStatement::fetch 风格 */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");
print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");
print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>
L'exemple ci-dessus affichera :
PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
[NAME] => apple
[COLOUR] => red
)
PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
[NAME] => banana
[0] => banana
[COLOUR] => yellow
[1] => yellow
)
PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties
PDORow Object
(
[NAME] => orange
[COLOUR] => orange
)
PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi
Récupérer des lignes à l'aide d'un curseur défilable
<?php
function readDataForwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
try {
$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
}
$stmt = null;
}
catch (PDOException $e) {
print $e->getMessage();
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
try {
$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
do {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
} while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
$stmt = null;
}
catch (PDOException $e) {
print $e->getMessage();
}
}
print "Reading forwards:\n";
readDataForwards($conn);
print "Reading backwards:\n";
readDataBackwards($conn);
?>
L'exemple ci-dessus affichera :
Reading forwards: 21 10 5 16 0 5 19 20 10 Reading backwards: 19 20 10 16 0 5 21 10 5
Autres extensions
Manuel de référence PHP PDO