Toate rândurile din rezultat în PDO în PHP
Se poate obține imediat un array cu toate
rândurile din rezultatul interogării.
Acest lucru se face cu ajutorul metodei fetchAll.
Să analizăm diferitele moduri de funcționare
ale acestei metode.
Toate exemplele vor fi pentru tabela de test.
Obținerea unui array simplu
Să aplicăm metoda fetchAll
pentru a obține un array simplu de date.
Pentru aceasta vom lăsa parametrii metodei
goi:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Rezultatul executării codului:
[
[
'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,
],
]
Obținerea unei singure coloane
Să obținem doar o singură coloană
din tabel. Pentru aceasta vom transmite
metodei fetchAll parametrul
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Rezultatul executării codului:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Obținerea perechii cheie-valoare
Să obținem datele sub formă
de pereche cheie-valoare, unde cheia va fi id-ul,
iar valoarea numele utilizatorului. Pentru aceasta în parametrul
metodei fetchAll vom transmite modul
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Rezultatul executării codului:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Obținerea înregistrărilor cu câmp unic
Se poate face astfel încât câmpul unic (în general
acesta este id), să devină cheie pentru fiecare
sub-array:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Rezultatul executării codului:
[
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,
],
]
Sarcini practice
Afișați toți utilizatorii
din tabela users,
utilizând metoda descrisă în lecție.
Afișați un singur rând de date
din tabela users.
Afișați numele și vârsta utilizatorilor sub formă de pereche cheie-valoare.