Alle rijen uit resultaat in PDO in PHP
Je kunt meteen een array met alle
rijen uit het queryresultaat verkrijgen.
Dit wordt gedaan met de methode fetchAll.
Laten we de verschillende werkmodi
van deze methode bekijken.
Alle voorbeelden zijn voor de testtabel.
Verkrijgen van een eenvoudige array
Laten we de methode fetchAll toepassen
om een eenvoudige array met gegevens te verkrijgen.
Laten we hiervoor de parameters van de methode
leeg laten:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Resultaat van de code-uitvoering:
[
[
'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,
],
]
Verkrijgen van één kolom
Laten we alleen één kolom
uit de tabel halen. Hiervoor geven we
de parameter
FETCH_COLUMN door aan de
methode fetchAll:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Resultaat van de code-uitvoering:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Verkrijgen van sleutel-waardepaar
Laten we de gegevens verkrijgen in de vorm
van een sleutel-waardepaar, waarbij de sleutel de id is,
en de waarde de gebruikersnaam. Hiervoor geven we de modus
FETCH_KEY_PAIR door als parameter
aan de methode fetchAll:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Resultaat van de code-uitvoering:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Verkrijgen van records met een uniek veld
Je kunt ervoor zorgen dat een uniek veld (meestal
is dit id) de sleutel wordt voor elke
subarray:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Resultaat van de code-uitvoering:
[
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,
],
]
Praktische taken
Toon alle gebruikers
uit de tabel users,
met behulp van de in de les beschreven
methode.
Toon één rij gegevens
uit de tabel users.
Toon de naam en leeftijd van gebruikers als een sleutel-waardepaar.