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

Ցուցադրեք օգտագործողների անուններն ու տարիքը բանալի-արժեք զույգի տեսքով: