РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
236 of 258 menu

Метод fetchOne

Метод fetchOne класса Connection выполняет SQL-запрос и возвращает значение первого столбца первой строки результата. Если запрос не вернул ни одной строки, метод возвращает false. Первым параметром передаётся SQL-запрос, вторым - массив значений для подстановки в подготовленный запрос.

Синтаксис

public function fetchOne(string $query, array $params = []): mixed

Пример

Давайте получим имя пользователя по его id:

<?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_index')] public function index(Connection $connection): Response { $res = $connection->fetchOne( 'SELECT name FROM users WHERE id = ?', [1] ); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

'user'

Пример

Давайте посчитаем количество статей в таблице:

<?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/count', name: 'article_count')] public function count(Connection $connection): Response { $res = $connection->fetchOne('SELECT COUNT(*) FROM articles'); return new Response(var_export($res, true)); } } ?>

Результат выполнения кода:

5

Пример

Давайте проверим, существует ли пользователь с заданным email:

<?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/check', name: 'article_check')] public function check(Connection $connection): Response { $res = $connection->fetchOne( 'SELECT id FROM users WHERE email = ?', ['user@example.com'] ); if ($res === false) { return new Response('user not found'); } return new Response('user id: ' . $res); } } ?>

Результат выполнения кода для существующего пользователя:

"user id: 5"

Смотрите также

  • класс Connection,
    который представляет соединение с базой данных
  • метод fetchAssociative,
    который возвращает первую строку в виде массива
  • метод fetchAllAssociative,
    который возвращает все строки в виде массива
  • метод executeQuery,
    который выполняет SQL-запрос и возвращает результат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить