Visos eilutės iš rezultato PDO PHP
Galima iš karto gauti visų
eilučių iš užklausos rezultato masyvą.
Tai daroma naudojant metodą fetchAll.
Panagrinėkime įvairius šio metodo veikimo
režimus.
Visi pavyzdžiai bus skirti testinei lentelei.
Paprasto masyvo gavimas
Panaudokime metodą fetchAll
paprastiems duomenims gauti.
Tam palikime metodo parametrus
tuščius:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Kodo vykdymo rezultatas:
[
[
'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,
],
]
Vieno stulpelio gavimas
Gaukime tik vieną stulpelį
iš lentelės. Tam perduokime į
metodą fetchAll parametrą
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Kodo vykdymo rezultatas:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Rakto ir reikšmės poros gavimas
Gaukime duomenis formoje
rakto ir reikšmės poros, kur raktas bus id,
o reikšmė vartotojo vardas. Tam į parametrą
metodo fetchAll perduosime režimą
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Kodo vykdymo rezultatas:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Įrašų su unikaliu lauku gavimas
Galima padaryti taip, kad unikalus laukas (paprastai
tai id), taptų kiekvieno
submasyvo raktu:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Kodo vykdymo rezultatas:
[
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,
],
]
Praktinės užduotys
Išveskite visus vartotojus
iš lentelės users,
naudodami pamokoje aprašytą
metodą.
Išveskite vieną duomenų eilutę
iš lentelės users.
Išveskite vartotojų vardą ir amžių raktų ir reikšmių porų pavidalu.