Как правило, все запросы к базе данных в фреймворке 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. Надеюсь это поможет решить ваши задачи.