Сви редови из резултата у PDO у PHP
Могуће је одмах добити низ свих
редова из резултата упита.
То се ради помоћу методе fetchAll.
Хајде да размотримо различите режиме рада
ове методе.
Сви примери ће бити за тестну табелу.
Добијање једноставног низа
Хајде да применимо методу fetchAll
за добијање једноставног низа података.
За то ћемо оставити параметре методе
празним:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Резултат извршавања кода:
[
[
'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,
],
]
Добијање једне колоне
Хајде да добијемо само једну колону
из табеле. За то ћемо проследити у
методу fetchAll параметар
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Резултат извршавања кода:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Добијање пара кључ-вредност
Хајде да добијемо податке у виду
пара кључ-вредност, где је кључ id,
а вредност име корисника. За то ћемо у параметар
методе fetchAll проследити режим
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Резултат извршавања кода:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Добијање записа са јединственим пољем
Може се урадити тако да јединствено поље (углавном
то је id), постане кључ за сваки
подниз:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Резултат извршавања кода:
[
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,
],
]
Пракticни задаци
Прикажите све кориснике
из табеле users,
користећи методу описану у лекцији.
Прикажите један ред података
из табеле users.
Прикажите име и године корисника у виду пара кључ-вредност.