Všechny řádky z výsledku v PDO v PHP
Lze okamžitě získat pole všech
řádků z výsledku dotazu.
To se provádí pomocí metody fetchAll.
Pojďme se podívat na různé režimy práce
této metody.
Všechny příklady budou pro testovací tabulku.
Získání jednoduchého pole
Aplikujme metodu fetchAll
pro získání jednoduchého pole dat.
K tomu ponecháme parametry metody
prázdné:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Výsledek provedení 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ískání jednoho sloupce
Získejme pouze jeden sloupec
z tabulky. K tomu předáme do
metody fetchAll parametr
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Výsledek provedení kódu:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Získání páru klíč-hodnota
Získejme data ve formě
páru klíč-hodnota, kde klíčem bude id,
a hodnotou jméno uživatele. K tomu do parametru
metody fetchAll předáme 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ýsledek provedení kódu:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Získání záznamů s unikátním polem
Lze zařídit, aby unikátní pole (obvykle
je to id), se stalo klíčem pro každé
podpole:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Výsledek provedení 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
Vypište všechny uživatele
z tabulky users,
pomocí metody popsané v lekci.
Vypište jeden řádek dat
z tabulky users.
Vypište jméno a věk uživatelů ve formě páru klíč-hodnota.