Alle rækker fra resultatet i PDO i PHP
Man kan straks få et array med alle
rækker fra forespørgselsresultatet.
Dette gøres ved hjælp af metoden fetchAll.
Lad os se på de forskellige tilstande for denne metode.
Alle eksempler vil være for testtabellen.
Hentning af simpelt array
Lad os anvende metoden fetchAll
for at hente et simpelt array med data.
For at gøre dette lader vi parametrene for metoden
være tomme:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Resultat af kodeudførelse:
[
[
'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,
],
]
Hentning af en enkelt kolonne
Lad os kun hente en enkelt kolonne
fra tabellen. For at gøre dette overfører vi til
metoden fetchAll parameteren
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Resultat af kodeudførelse:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Hentning af nøgle-værdi-par
Lad os hente data i form af
et nøgle-værdi-par, hvor nøglen vil være id,
og værdien vil være brugerens navn. For at gøre dette, i parameteren
for metoden fetchAll, overfører vi tilstanden
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Resultat af kodeudførelse:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Hentning af poster med unikt felt
Man kan gøre så, at det unikke felt (som regel
er dette id), bliver nøglen for hvert
underarray:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Resultat af kodeudførelse:
[
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,
],
]
Praktiske opgaver
Udskriv alle brugere
fra tabellen users,
ved at bruge metoden beskrevet i lektionen.
Udskriv en enkelt række data
fra tabellen users.
Udskriv navn og alder for brugere som et nøgle-værdi-par.