PDOStatement :: fetchAll
PDOStatement :: fetchAll - retourne un tableau de toutes les lignes du jeu de résultats (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
explication
grammaire
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
Paramètres
fetch_style
Comment contrôler la ligne suivante est renvoyée à l'appelant. Cette valeur doit être PDO :: FETCH_ * constantes dans une série, la valeur par défaut pour le PDO :: ATTR_DEFAULT_FETCH_MODE (par défaut PDO :: FETCH_BOTH).
Pour retourner un jeu de résultats qui contient un tableau de toutes les valeurs dans une seule colonne, vous devez spécifier PDO :: FETCH_COLUMN. Obtenez les colonnes désirées en spécifiant le paramètre column-index.
Vous voulez obtenir l'ensemble des valeurs uniques de résultat dans une seule colonne, vous devez PDO :: FETCH_COLUMN et PDO :: bitwise FETCH_UNIQUE ou.
Pour revenir une colonne basée sur la valeur spécifiée du tableau associatif groupé, nous avons besoin de PDO :: FETCH_COLUMN et PDO :: bitwise FETCH_GROUP ou.
fetch_argument
fetch_style paramètre basé sur la valeur de ce paramètre a une signification différente:
PDO::FETCH_COLUMN
: Retourne les colonnes zéro indexées.PDO::FETCH_CLASS
: renvoie une instance de la classe spécifiée, la colonne de mappage pour chaque ligne correspondant à la classe nom d' attribut.PDO::FETCH_FUNC
: la colonne de chaque ligne comme un argument à la fonction spécifiée, et renvoie le résultat après la fonction d' appel.
ctor_args
Lorsque les paramètres fetch_style PDO :: FETCH_CLASS, puisque la définition des paramètres du constructeur de classe.
Valeur de retour
PDOStatement :: fetchAll () retourne un jeu de résultats qui contient un tableau de toutes les lignes restantes. Chaque ligne de ce tableau est un tableau ou une valeur de colonne, ou un attribut de l'objet correspondant à chaque nom de colonne.
Utilisez cette méthode pour obtenir un grand jeu de résultats entraînera la charge du système et peut prendre beaucoup de ressources réseau. Récupérez toutes les données et son utilisation PHP pour fonctionner, il serait préférable d'envisager l'utilisation des services de base de données pour faire face à l'ensemble de résultats. Par exemple, avant et récupérer des données à travers le processus de PHP pour définir les résultats avec WHERE et ORDER BY clauses SQL.
Exemples
Obtenez toutes les lignes restantes dans le jeu de résultats
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
La sortie de l'exemple ci-dessus est la suivante:
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
Être un seul résultat réglé toutes les valeurs
L'exemple suivant montre comment se concentrer une déclaration distincte de toutes les valeurs d'un résultat, même si l'instruction SQL elle-même peut retourner plusieurs colonnes par rangée.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
La sortie de l'exemple ci-dessus est la suivante:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
Selon un groupe distinct toutes les valeurs
L'exemple suivant montre comment retourner une valeur de la colonne spécifiée tableau associatif centralisé sur la base des résultats du paquet. Le tableau contient trois clés: pomme et poire tableau retourné contient deux couleurs différentes, alors que la pastèque retourné tableau contient une seule couleur.
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
La sortie de l'exemple ci-dessus est la suivante:
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
Chaque ligne du résultat instancier une classe
Liezi ci-dessous montre PDO :: FETCH_CLASS Obtient le comportement de style.
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
La sortie de l'exemple ci-dessus est la suivante:
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
Chaque ligne appelle une fonction
Liezi ci-dessous montre PDO :: FETCH_FUNC Obtient le comportement de style.
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
La sortie de l'exemple ci-dessus est la suivante:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }