Как правило, все запросы к базе данных в фреймворке Symfony принято выполнять с помощью Query Builder. Как же быть, если нам нужно выполнить простой SQL запрос к базе данных? Какие способы мы можем для этого использовать?

Более подробно о работе с базой данных в Symfony, можно посмотреть в моем видеокурсе:

https://webkyrs.info/category/symfony-rabota-s-bazoi-dannykh-osnovy

На самом деле все достаточно просто и мы можем выполнить SQL запрос с помощью Entity Manager.

Вот пример, как мы это можем сделать.

Выполнение SQL запросов через Entity Manager

$con = $entityManager->getConnection();
$sql = "SELECT * FROM messenger_messages WHERE queue_name = :queue_name";
$stmt = $con->prepare($sql);
$resultSet = $stmt->executeQuery(['queue_name' => 'competition_333']);
dd($resultSet->fetchAllAssociative());

Таким образом мы сначала открываем соединение с базой данных ($con), далее подготавливаем запрос $con->prepare($sql) и запускаем этот запрос на выполнение $stmt->executeQuery(['queue_name' => 'competition_333']);

Аргумент 'queue_name' является опциональным и вы можете его не передавать. Он требуется если нужно передать какие-то аргументы в SQL запрос.

Выполнение SQL запросов через командную строку

Кроме того, если нам нужно быстро выполнить какой-то sql запрос к базе данных мы можем сделать это с помощью командной строки.

php bin/console doctrine:query:sql 'SELECT * FROM article'

Вот такие несколько примеров, как вы можете выполнить sql запрос к базе данных на фреймворке Symfony. Надеюсь это поможет решить ваши задачи.