Všetky riadky z výsledku v PDO v PHP
Je možné okamžite získať pole všetkých
riadkov z výsledku dopytu.
To sa robí pomocou metódy fetchAll.
Pozrime sa na rôzne režimy práce
tejto metódy.
Všetky príklady budú pre testovaciu tabuľku.
Získanie jednoduchého poľa
Aplikujme metódu fetchAll
na získanie jednoduchého poľa dát.
Preto ponechajme parametre metódy
prázdne:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Výsledok vykonania kódu:
[
[
'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,
],
]
Získanie jedného stĺpca
Získajme len jeden stĺpec
z tabuľky. Preto odovzdajme do
metódy fetchAll parameter
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Výsledok vykonania kódu:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Získanie páru kľúč-hodnota
Získajme dáta vo forme
páru kľúč-hodnota, kde kľúčom bude id,
a hodnotou meno používateľa. Preto do parametra
metódy fetchAll odovzdajme režim
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Výsledok vykonania kódu:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Získanie záznamov s unikátnym poľom
Je možné spraviť tak, aby unikátne pole (spravidla
je to id), sa stalo kľúčom pre každé
podpole:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Výsledok vykonania kódu:
[
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,
],
]
Praktické úlohy
Vypíšte všetkých používateľov
z tabuľky users,
použitím metódy opísanej v lekcii.
Vypíšte jeden riadok dát
z tabuľky users.
Vypíšte meno a vek používateľov vo forme páru kľúč-hodnota.