ყველა მწკრივი შედეგიდან PDO-ში PHP-ში

შესაძლებელია დაუყოვნებლივ მივიღოთ ყველა მწკრივის მასივი მოთხოვნის შედედან. ეს კეთდება fetchAll მეთოდის გამოყენებით. მოდით განვიხილოთ ამ მეთოდის მუშაობის სხვადასხვა რეჟიმი. ყველა მაგალითი იქნება ტესტური ცხრილისთვის.

მარტივი მასივის მიღება

მოდით გამოვიყენოთ fetchAll მეთოდი მონაცემების მარტივი მასივის მისაღებად. ამისთვის მეთოდის პარამეტრები დავტოვოთ ცარიელი:

php<?php
  $res = $pdo->query('SELECT * FROM users');
  
  $row = $res->fetchAll();
  var_dump($row);
?>

კოდის შესრულების შედეგი:

php[
  [
    '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<?php
  $res = $pdo->query('SELECT name FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_COLUMN);
  var_dump($row);
?>

კოდის შესრულების შედეგი:

php[
  'name1',
  'name2',
  'name3',
  'name4',
  'name5',
]

გასაღები-მნიშვნელობა წყვილის მიღება

მოდით მივიღოთ მონაცემები გასაღები-მნიშვნელობა წყვილის სახით, სადაც გასაღები იქნება id, ხოლო მნიშვნელობა იქნება მომხმარებლის სახელი. ამისთვის პარამეტრად fetchAll მეთოდს გადავცემთ რეჟიმს FETCH_KEY_PAIR:

php<?php
  $res = $pdo->query('SELECT id, name FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
  var_dump($row);
?>

კოდის შესრულების შედეგი:

php[
  1 => 'name1',
  2 => 'name2',
  3 => 'name3',
  4 => 'name4',
  5 => 'name5',
]

ჩანაწერების მიღება უნიკალური ველით

შესაძლებელია გაკეთდეს ისე, რომ უნიკალური ველი (როგორც წესი ეს არის id), გახდეს გასაღები თითოეული ქვემასივისთვის:

php<?php
  $res = $pdo->query('SELECT * FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_UNIQUE);
  var_dump($row);
?>

კოდის შესრულების შედეგი:

php[
  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,
  ],
]

პრაქტიკული ამოცანები

Задание 1

გამოიტანეთ ყველა მომხმარებელი users ცხრილიდან, გაკვეთილში აღწერილი მეთოდის გამოყენებით.

Задание 2

გამოიტანეთ მონაცემების ერთი მწკრივი users ცხრილიდან.

Задание 3

გამოიტანეთ მომხმარებლების სახელი და ასაკი გასაღები-მნიშვნელობა წყვილის სახით.