Symfony2& Doctrine:创建自定义SQL查询

时间:2012-10-12 15:30:53

标签: php sql symfony doctrine

如何使用Doctrine在Symfony2中创建自定义SQL查询?或者没有学说,我不在乎。

不是这样的:

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

感谢。

2 个答案:

答案 0 :(得分:83)

您可以直接从Entity Manager获取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几乎可以处理您可能需要的任何查询。

官方文件:https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/data-retrieval-and-manipulation.html

答案 1 :(得分:-2)

您可以执行此代码:

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