Всички редове от резултата в 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,
],
]
Практически задачи
Изведете всички потребители
от таблицата users,
използвайки описания в урока
метод.
Изведете един ред данни
от таблицата users.
Изведете име и възраст на потребителите под формата на двойка ключ-стойност.