Tất cả các hàng từ kết quả trong PDO của PHP

Bạn có thể lấy ngay một mảng chứa tất cả các hàng từ kết quả truy vấn. Điều này được thực hiện bằng phương thức fetchAll. Hãy cùng xem xét các chế độ hoạt động khác nhau của phương thức này. Tất cả các ví dụ sẽ dành cho bảng kiểm tra.

Lấy mảng đơn giản

Hãy áp dụng phương thức fetchAll để lấy một mảng dữ liệu đơn giản. Để làm điều này, hãy để trống các tham số của phương thức :

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

Kết quả thực thi mã:

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

Lấy một cột

Hãy lấy chỉ một cột từ bảng. Để làm điều này, hãy truyền vào phương thức fetchAll tham số FETCH_COLUMN:

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

Kết quả thực thi mã:

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

Lấy cặp khóa-giá trị

Hãy lấy dữ liệu dưới dạng cặp khóa-giá trị, trong đó khóa là id, và giá trị là tên người dùng. Để làm điều này, hãy truyền vào tham số của phương thức fetchAll chế độ FETCH_KEY_PAIR:

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

Kết quả thực thi mã:

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

Lấy các bản ghi với trường duy nhất

Bạn có thể làm sao cho trường duy nhất (thông thường là id) trở thành khóa cho mỗi mảng con:

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

Kết quả thực thi mã:

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

Bài tập thực hành

Задание 1

Hiển thị tất cả người dùng từ bảng users, sử dụng phương thức đã mô tả trong bài học .

Задание 2

Hiển thị một hàng dữ liệu từ bảng users.

Задание 3

Hiển thị tên và tuổi của người dùng dưới dạng cặp khóa-giá trị.