Wszystkie wiersze z wyniku w PDO w PHP
Można od razu uzyskać tablicę wszystkich
wierszy z wyniku zapytania.
Robimy to za pomocą metody fetchAll.
Przyjrzyjmy się różnym trybom działania
tej metody.
Wszystkie przykłady będą dla tabeli testowej.
Pobieranie prostej tablicy
Zastosujmy metodę fetchAll
do pobrania prostej tablicy danych.
Aby to zrobić, pozostawimy parametry metody
puste:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Wynik wykonania kodu:
[
[
'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,
],
]
Pobieranie jednej kolumny
Pobierzmy tylko jedną kolumnę
z tabeli. Aby to zrobić, przekażemy do
metody fetchAll parametr
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Wynik wykonania kodu:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Pobieranie pary klucz-wartość
Pobierzmy dane w postaci
pary klucz-wartość, gdzie kluczem będzie id,
a wartością imię użytkownika. Aby to zrobić, do parametru
metody fetchAll przekażemy tryb
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Wynik wykonania kodu:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Pobieranie rekordów z unikalnym polem
Można sprawić, aby unikalne pole (zazwyczaj
jest to id) stało się kluczem dla każdej
podtablicy:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Wynik wykonania kodu:
[
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,
],
]
Zadania praktyczne
Wyświetl wszystkich użytkowników
z tabeli users,
używając opisanej w lekcji
metody.
Wyświetl jeden wiersz danych
z tabeli users.
Wyświetl imię i wiek użytkowników w postaci pary klucz-wartość.