Метод fetchAssociative
Метод fetchAssociative класса Connection выполняет SQL-запрос и возвращает первую строку результата в виде ассоциативного массива, где ключами являются имена столбцов. Если строк нет, метод возвращает false. Первым параметром передаётся SQL-запрос, вторым - массив значений для подстановки в параметры запроса.
Синтаксис
public function fetchAssociative(string $query, array $params = [], array $types = []): array|false
Пример
Давайте получим одну статью из базы данных по её идентификатору:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_show')]
public function show(Connection $connection): Response
{
$sql = 'SELECT id, title, text FROM article WHERE id = ?';
$res = $connection->fetchAssociative($sql, [1]);
return new Response('<pre>' . print_r($res, true) . '</pre>');
}
}
?>
Результат выполнения кода:
[
'id' => 1,
'title' => 'article',
'text' => 'abcde'
]
Пример
Давайте проверим, что возвращает метод, если строка не найдена:
<?php
namespace App\Controller;
use Doctrine\DBAL\Connection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article/missing', name: 'article_missing')]
public function missing(Connection $connection): Response
{
$sql = 'SELECT id, title, text FROM article WHERE id = ?';
$res = $connection->fetchAssociative($sql, [999]);
return new Response('<pre>' . var_export($res, true) . '</pre>');
}
}
?>
Результат выполнения кода:
false
Смотрите также
-
класс
Connection,
который предоставляет доступ к базе данных -
метод
fetchAllAssociative,
который возвращает все строки результата -
метод
fetchOne,
который возвращает значение первого столбца -
метод
executeQuery,
который выполняет запрос и возвращает результат