PDOStatement::fetchAll --
Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
Description
array PDOStatement::fetchAll ( [int fetch_style [, int column_index]] )
Liste de paramètres
fetch_style
Contrôle le contenu du tableau retourné comme documenté dans la fonction
PDOStatement::fetch(). Vaut par défaut
PDO::FETCH_BOTH.
Pour retourner un tableau contenant toutes les valeurs d'une seule colonne
depuis le jeu de résultats, spécifiez PDO::FETCH_COLUMN.
Vous pouvez spécifier quelle colonne vous voulez avec le paramètre
column-index.
Pour récupérer uniquement les valeurs uniques d'une seule colonne depuis
le jeu de résultats, utilisez PDO::FETCH_COLUMN avec
PDO::FETCH_UNIQUE.
Pour retourner un tableau associatif groupé par les valeurs d'une
colonne spécifique, utilisez PDO::FETCH_COLUMN avec
PDO::FETCH_GROUP.
column_index
Retourne la colonne indiquée où la valeur de
fetch_style est
PDO::FETCH_COLUMN. Vaut par défaut 0.
Valeurs de retour
PDOStatement::fetchAll() retourne un tableau contenant
toutes les lignes du jeu d'enregistrements. Le tableau représente chaque ligne
comme soit un tableau de valeurs des colonnes, soit un objet avec des propriétés
correspondant à chaque nom de colonne.
L'utilisation de cette méthode pour récupérer de gros jeux de résultats
peut augmenter les ressources du systèmes mais également ces ressources.
Plutôt que de récupérer toutes les données et de les manipuler avec PHP,
utilisez le serveur de base de données pour manipuler les jeux de résultats.
Par exemple, utilisez les clauses WHERE et
ORDER BY dans vos requêtes SQL pour restreindre les résultats
avant de le récupérer et de les traiter avec PHP.
Exemples
Exemple 1. Récupération de toutes les lignes d'un jeu de résultats
<?php $sth = $dbh->prepare("SELECT nom, couleur FROM fruit"); $sth->execute();
/* Récupération de toutes les lignes d'un jeu de résultats */ print("Récupération de toutes les lignes d'un jeu de résultats :\n"); $result = $sth->fetchAll(); print_r($result); ?>
L'exemple ci-dessus va afficher :
Récupération de toutes les lignes d'un jeu de résultats :
Array
(
[0] => Array
(
[NOM] => pear
[0] => pear
[COULEUR] => green
[1] => green
)
[1] => Array
(
[NOM] => watermelon
[0] => watermelon
[COULEUR] => pink
[1] => pink
)
)
Exemple 2. Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats
L'exemple suivant montre comment retourner toutes les valeurs
d'une seule colonne depuis un jeu de résultats, même si la requête SQL
retourne plusieurs colonnes par lignes.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute();
/* Récupération de toutes les valeurs de la première colonne */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
Exemple 3. Grouper toutes les valeurs d'une seule colonne
L'exemple suivant montre comment retourner un tableau associatif
groupé par les valeurs de la colonne spécifiée d'un jeu de résultats.
Le tableau contient trois clés : les valeurs apple
et pear sont retournées sous la forme de tableaux
qui contiennent deux couleurs différentes, tandis que
watermelon est retourné sous la forme d'un tableau
qui contient uniquement une seule couleur.