Kõik read tulemusest PDO-s PHP-s

Kõikide ridade massiivi saab kohe päringu tulemusest kätte. Seda tehakse meetodi fetchAll abil. Vaatame selle meetodi erinevaid töörežiime. Kõik näited on tehtud testtabeli jaoks.

Lihtsa massiivi saamine

Rakendame meetodit fetchAll andmete lihtsa massiivi saamiseks. Selleks jätame meetodi parameetrid tühjaks:

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

Koodi täitmise tulemus:

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

Ühe veeru saamine

Saame ainult ühe veeru tabelist. Selleks edastame meetodile fetchAll parameetri FETCH_COLUMN:

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

Koodi täitmise tulemus:

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

Võtme-väärtuse paari saamine

Saame andmed kujul võtme-väärtuse paar, kus võtmeks on id ja väärtuseks kasutaja nimi. Selleks parameetrisse meetodist fetchAll edastame režiimi FETCH_KEY_PAIR:

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

Koodi täitmise tulemus:

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

Kirjete saamine unikaalse väljaga

Saame teha nii, et unikaalne väli (tavaliselt see on id), muutub iga alamassiivi võtmeks:

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

Koodi täitmise tulemus:

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

Praktilised ülesanded

Задание 1

Kuva kõik kasutajad tabelist users, kasutades selles õppetükis kirjeldatud meetodit.

Задание 2

Kuva üks andmerida tabelist users.

Задание 3

Kuva kasutajate nimi ja vanus kujul võtme-väärtuse paar.