PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Вибирає рядки, що залишилися, з набору результатів

Опис

public PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array

Список параметрів

mode

Визначає вміст масиву, що повертається. Докладніше можна дізнатися з документації до методу PDOStatement::fetch()По умолчанию параметр принимает значение**PDO::ATTR_DEFAULT_FETCH_MODE** (яке у свою чергу має умовчання PDO::FETCH_BOTH) .

Щоб вибрати значення лише одного стовпця, передайте як значення цього параметра константу **PDO::FETCH_COLUMN**С помощью параметраcolumn можна встановити стовпець, з якого потрібно витягти дані.

Якщо потрібно витягти лише унікальні рядки одного стовпця, потрібно передати побітове АБО констант PDO::FETCH_COLUMN і PDO::FETCH_UNIQUE

Щоб отримати асоціативний масив рядків, згрупований за значеннями певного стовпця, потрібно передати побітове АБО констант PDO::FETCH_COLUMN і PDO::FETCH_GROUP

Наступні параметри динамічні і залежать від режиму вибірки. Вони не можуть використовуватися разом із іменованими параметрами.

column

Використовується з PDO::FETCH_COLUMN. Повертає зазначений стовпець з індексом, що починається з 0.

class

Використовується з PDO::FETCH_CLASS. Повертає екземпляри зазначеного класу, зіставляючи стовпці кожного рядка із іменованими властивостями класу.

constructorArgs

Аргументи конструктора користувача класу, коли параметр modeравен**PDO::FETCH_CLASS**

callback

Використовується з PDO::FETCH_FUNC. Повертає результати виклику вказаної функції, використовуючи стовпці кожного рядка як параметри виклику.

Значення, що повертаються

МетодPDOStatement::fetchAll() повертає масив, що містить всі рядки результуючого набору. Масив представляє кожен рядок у вигляді масиву значень одного стовпця, або у вигляді об'єкта, імена властивостей якого збігаються з іменами стовпців.

Використання цього для вилучення рядків великих результуючих наборів може згубно позначитися на продуктивності системи та мережевих ресурсів. Замість отримання всіх даних та їх обробки в PHP рекомендується використовувати вбудовані засоби СУБД. Наприклад, використання виразів WHERE та ORDER BY мови SQL може зменшити розмір результуючого набору.

Помилки

Видає помилку рівня E_WARNING, якщо атрибуту PDO::ATTR_ERRMODEустановлено значениеPDO::ERRMODE_WARNING

Викидає виняток PDOException, якщо атрибуту PDO::ATTR_ERRMODEустановлено значениеPDO::ERRMODE_EXCEPTION

список змін

ВерсияОпис
8.0.0Метод тепер завжди повертає масив (array), раніше у разі виникнення помилки могло повертатися false

Приклади

Приклад #1 Вилучення всіх рядків результуючого набору, що залишилися.

Loading...

Висновок наведеного прикладу буде схожим на:

Извлечение всех оставшихся строк результирующего набора:
Array
(
    [0] => Array
        (
            [name] => apple
            [0] => apple
            [colour] => red
            [1] => red
        )

    [1] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [2] => Array
        (
            [name] => watermelon
            [0] => watermelon
            [colour] => pink
            [1] => pink
        )
)

Приклад #2 Вилучення всіх значень одного стовпця результуючого набору

У наступному прикладі показано, як витягти з результуючого набору значення лише одного стовпця, навіть якщо рядки містять значення кількох стовпців.

Loading...

Висновок наведеного прикладу буде схожим на:

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Приклад #3 Угруповання рядків за значеннями одного стовпця

У наведеному нижче прикладі показано, як отримати асоціативний масив рядків результуючого набору, згрупованих за значеннями зазначеного стовпця. Масив містить три ключі: значення appleиpear є масивами, що містять два різні кольори; в той же час watermelon буде масивом, що містить лише один колір.

Loading...

Висновок наведеного прикладу буде схожим на:

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "pink"
  }
}

Приклад #4 Створення об'єкта для кожного рядка

У наступному прикладі показано поведінку методу у режимі вибірки PDO::FETCH_CLASS

Loading...

Висновок наведеного прикладу буде схожим на:

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
  [3]=>
  object(fruit)#4 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(3) "red"
  }
  [4]=>
  object(fruit)#5 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(5) "green"
  }
}

Приклад #5 Виклик функції для кожного рядка

У наступному прикладі показано поведінку методу у режимі вибірки PDO::FETCH_FUNC

Loading...

Висновок наведеного прикладу буде схожим на:

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
  [3]=>
  string(10) "apple: red"
  [4]=>
  string(11) "pear: green"
}

Дивіться також

  • PDO::query() - готує та виконує вираз SQL без заповнювачів
  • PDOStatement::fetch() - Вилучення наступного рядка з результуючого набору
  • PDOStatement::fetchColumn() - Повертає дані одного стовпця наступного рядка результуючого набору
  • PDO::prepare() - готує запит до виконання та повертає пов'язаний із цим запитом об'єкт
  • PDOStatement::setFetchMode() - Встановлює режим вибірки за промовчанням для об'єкта запиту