PDO арқылы PHP-де барлық нәтиже жолдары
Сұрау нәтижесіндегі барлық жолдардың массивін бірден алуға болады.
Бұл fetchAll әдісі арқылы жасалады.
Бұл әдістің жұмыс істеудің әртүрлі режимдерін қарастырайық.
Барлық мысалдар test-table үшін болады.
Қарапайым массивті алу
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 кестесінен
бір деректер жолын шығарыңыз.
Пайдаланушылардың аты мен жасын кілт-мән жұбы түрінде шығарыңыз.