Alle rader fra resultatet i PDO i PHP
Man kan umiddelbart få en matrise med alle
radene fra spørringsresultatet.
Dette gjøres ved hjelp av metoden fetchAll.
La oss se på de forskjellige modusene for hvordan
denne metoden fungerer.
Alle eksempler vil være for testtabellen.
Hente en enkel matrise
La oss bruke metoden fetchAll
for å hente en enkel datamatrise.
For å gjøre dette lar vi parameterne til metoden
stå tomme:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Resultat av kodekjøring:
[
[
'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,
],
]
Hente en enkelt kolonne
La oss hente bare en enkelt kolonne
fra tabellen. For å gjøre dette sender vi
parameteren FETCH_COLUMN til
metoden fetchAll:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Resultat av kodekjøring:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Hente nøkkel-verdi-par
La oss hente data i form av
nøkkel-verdi-par, hvor nøkkelen vil være id,
og verdien vil være brukerens navn. For å gjøre dette sender vi modusen
FETCH_KEY_PAIR som en parameter til
metoden fetchAll:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Resultat av kodekjøring:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Hente poster med et unikt felt
Man kan gjøre slik at det unike feltet (som regel
er dette id) blir nøkkelen for hvert
undermatrise:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Resultat av kodekjøring:
[
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 oppgaver
Skriv ut alle brukere
fra tabellen users,
ved å bruke metoden beskrevet i leksjonen.
Skriv ut en enkelt rad med data
fra tabellen users.
Skriv ut navn og alder på brukere i form av nøkkel-verdi-par.