如何使用Doctrine在Symfony2中創建自定義SQL查詢?或者沒有教條,我不在乎。Symfony2&Doctrine:創建自定義SQL查詢
不工作是這樣的:
$em = $this->getDoctrine()->getEntityManager();
$em->createQuery($sql);
$em->execute();
感謝。
如何使用Doctrine在Symfony2中創建自定義SQL查詢?或者沒有教條,我不在乎。Symfony2&Doctrine:創建自定義SQL查詢
不工作是這樣的:
$em = $this->getDoctrine()->getEntityManager();
$em->createQuery($sql);
$em->execute();
感謝。
您可以直接從實體管理器得到的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();
不過,我會反對這項建議,除非真的有必要...主義的DQL可以處理幾乎任何你可能需要的查詢。
正式文件:http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html
您可以執行此代碼它的工作原理:
$em = $this->getDoctrine()->getEntityManager();
$result= $em->createQuery($sql)->getResult();
'$ em-> createQuery()'不會執行SQL,而是執行DQL。 – loostro
也有在說與本地SQL規定:http://docs.doctrine-project.org/en/最新/ reference/native-sql.html – Orbling
工程就像一個魅力,謝謝:) – a1337q
它的完美,非常感謝! – iarroyo