Tous les enregistrements du résultat dans PDO en PHP
Il est possible d'obtenir immédiatement un tableau de tous
les enregistrements du résultat d'une requête.
Cela se fait à l'aide de la méthode fetchAll.
Examinons les différents modes de fonctionnement
de cette méthode.
Tous les exemples seront pour la table de test.
Obtention d'un tableau simple
Utilisons la méthode fetchAll
pour obtenir un tableau simple de données.
Pour cela, laissons les paramètres de la méthode
vides :
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Résultat de l'exécution du code :
[
[
'id' => 1,
'name' => 'name1',
'age' => 21,
'salary' => 500,
],
[
'id' => 2,
'name' => 'name2',
'age' => 22,
'salary' => 600,
],
[
'id' => 3,
'name' => 'name3',
'age' => 23,
'salary' => 600,
],
[
'id' => 4,
'name' => 'name4',
'age' => 24,
'salary' => 700,
],
[
'id' => 5,
'name' => 'name5',
'age' => 25,
'salary' => 800,
],
]
Obtention d'une seule colonne
Obtenons seulement une colonne
de la table. Pour cela, passons à
la méthode fetchAll le paramètre
FETCH_COLUMN :
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Résultat de l'exécution du code :
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Obtention d'une paire clé-valeur
Obtenons les données sous forme
de paire clé-valeur, où la clé sera l'id,
et la valeur le nom de l'utilisateur. Pour cela, dans le paramètre
de la méthode fetchAll passons le mode
FETCH_KEY_PAIR :
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Résultat de l'exécution du code :
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Obtention d'enregistrements avec un champ unique
Il est possible de faire en sorte qu'un champ unique (généralement
l'id), devienne la clé pour chaque
sous-tableau :
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Résultat de l'exécution du code :
[
1 => [
'id' => 1,
'name' => 'name1',
'age' => 21,
'salary' => 500,
],
2 => [
'id' => 2,
'name' => 'name2',
'age' => 22,
'salary' => 600,
],
3 => [
'id' => 3,
'name' => 'name3',
'age' => 23,
'salary' => 600,
],
4 => [
'id' => 4,
'name' => 'name4',
'age' => 24,
'salary' => 700,
],
5 => [
'id' => 5,
'name' => 'name5',
'age' => 25,
'salary' => 800,
],
]
Tâches pratiques
Affichez tous les utilisateurs
de la table users,
en utilisant la méthode décrite dans la leçon.
Affichez un enregistrement de données
de la table users.
Affichez le nom et l'âge des utilisateurs sous forme de paire clé-valeur.