2012-10-12 17 views

Odpowiedz

72

można uzyskać obiekt połączenia bezpośrednio z Entity Manager i uruchomić zapytań SQL bezpośrednio przez to:

$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(); 

Jednak radzę przeciwko temu, chyba że jest to naprawdę konieczne ... doktryny DQL może obsłużyć prawie każde zapytanie, które możesz potrzebować.

Oficjalna dokumentacja: http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html

+10

Istnieje również przepis Język SQL w doktrynie: http://docs.doctrine-project.org/en/ latest/reference/native-sql.html – Orbling

+0

Działa jak wdzięk, dzięki :) – a1337q

+0

To idealne, wielkie dzięki! – iarroyo

1

można wykonać ten kod to działa:

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

'$ em-> createQuery()' nie wykonuje SQL, ale DQL. – loostro

Powiązane problemy