Подтвердить что ты не робот

Symfony2 & Doctrine: создание пользовательского SQL-запроса

Как создать собственный SQL-запрос в Symfony2 с помощью Doctrine? Или без доктрины, мне все равно.

Не работает так:

    $em = $this->getDoctrine()->getEntityManager();
    $em->createQuery($sql);
    $em->execute();

Спасибо.

4b9b3361

Ответ 1

Вы можете получить объект Connection непосредственно из Менеджера сущностей и выполнить SQL-запросы непосредственно через это:

$em = $this->getDoctrine()->getManager(); // ...or getEntityManager() prior to Symfony 2.1
$connection = $em->getConnection();
$statement = $connection->prepare("SELECT something FROM somethingelse WHERE id = :id");
$statement->bindValue('id', 123);
$statement->execute();
$results = $statement->fetchAll();

Однако я бы посоветовал это сделать, если это действительно необходимо... Doctrine DQL может обрабатывать практически любой запрос, который вам может понадобиться.

Официальная документация: http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html

Ответ 2

Вы можете выполнить этот код, который он работает:

$em = $this->getDoctrine()->getEntityManager();
$result= $em->createQuery($sql)->getResult();