Метод fetchAllAssociative
Метод fetchAllAssociative принадлежит классу Connection
и выполняет SQL-запрос, возвращая все строки
результата в виде массива, где каждая строка - это
ассоциативный массив с именами колонок в качестве ключей.
Метод удобен, когда нужно получить сразу весь набор
данных, например для вывода списка статей.
Первым параметром передаётся SQL-запрос,
вторым - массив значений для подстановки в плейсхолдеры.
Синтаксис
public function fetchAllAssociative(string $sql, array $params = []): array
Пример
Давайте выполним простой запрос и получим все строки таблицы:
<?php
use Doctrine\DBAL\DriverManager;
$connection = DriverManager::getConnection([
'driver' => 'pdo_mysql',
'host' => 'localhost',
'dbname' => 'test',
'user' => 'root',
'password' => '',
]);
$sql = 'SELECT id, title FROM article';
$res = $connection->fetchAllAssociative($sql);
print_r($res);
?>
Результат выполнения кода:
[
['id' => 1, 'title' => 'article 1'],
['id' => 2, 'title' => 'article 2'],
['id' => 3, 'title' => 'article 3'],
]
Пример
Давайте передадим параметр в запрос через плейсхолдер:
<?php
use Doctrine\DBAL\DriverManager;
$connection = DriverManager::getConnection([
'driver' => 'pdo_mysql',
'host' => 'localhost',
'dbname' => 'test',
'user' => 'root',
'password' => '',
]);
$sql = 'SELECT id, title FROM article WHERE title = ?';
$res = $connection->fetchAllAssociative($sql, ['article']);
print_r($res);
?>
Результат выполнения кода:
<+php+>
[
['id' => 1, 'title' => 'article'],
]
<-php+>
Пример
Давайте используем именованные плейсхолдеры:
<?php
use Doctrine\DBAL\DriverManager;
$connection = DriverManager::getConnection([
'driver' => 'pdo_mysql',
'host' => 'localhost',
'dbname' => 'test',
'user' => 'root',
'password' => '',
]);
$sql = 'SELECT id, title FROM article WHERE id > :id';
$res = $connection->fetchAllAssociative($sql, ['id' => 1]);
print_r($res);
?>
Результат выполнения кода:
[
['id' => 2, 'title' => 'article 2'],
['id' => 3, 'title' => 'article 3'],
]
Смотрите также
-
класс
Connection,
который управляет соединением с базой данных -
метод
fetchAssociative,
который возвращает одну строку результата -
метод
fetchOne,
который возвращает значение одной колонки -
метод
iterateAssociative,
который возвращает итератор по строкам результата