Visas rindas no rezultāta PDO PHP
Var uzreiz iegūt visu
rindu masīvu no vaicājuma rezultāta.
To dara ar metodi fetchAll.
Apskatīsim dažādus šīs metodes darbības režīmus.
Visi piemēri būs testa tabulai.
Vienkārša masīva iegūšana
Izmantosim metodi fetchAll,
lai iegūtu vienkāršu datu masīvu.
Lai to izdarītu, atstāsim metodes parametrus
tukšus:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Koda izpildes rezultāts:
[
[
'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,
],
]
Vienas kolonnas iegūšana
Iegūsim tikai vienu kolonnu
no tabulas. Lai to izdarītu, padodam
metodei fetchAll parametru
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Koda izpildes rezultāts:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Atslēgas un vērtības pāra iegūšana
Iegūsim datus formā
atslēgas-vērtības pāris, kur atslēga būs id,
bet vērtība - lietotāja vārds. Lai to izdarītu, parametrā
metodei fetchAll padodam režīmu
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Koda izpildes rezultāts:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Ierakstu iegūšana ar unikālu lauku
Var izdarīt tā, lai unikālais lauks (parasti
tas ir id), kļūtu par atslēgu katram
apakšmasīvam:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Koda izpildes rezultāts:
[
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,
],
]
Praktiskie uzdevumi
Izvadiet visus lietotājus
no tabulas users,
izmantojot nodarbībā aprakstīto
metodi.
Izvadiet vienu datu rindu
no tabulas users.
Izvadiet lietotāju vārdu un vecumu atslēgas-vērtības pāra formā.