2012-10-12 11 views

Antwort

72

Sie können direkt mit dem Connection-Objekt erhalten vom Entity Manager und SQL-Abfragen direkt durch diese laufen:

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

Aber ich abraten würde, wenn es wirklich notwendig ist ... Lehre der DQL verarbeiten kann fast jede Frage, die Sie brauchen könnten.

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

+10

Es gibt auch die Native-SQL-Bestimmung in Lehre: http://docs.doctrine-project.org/en/ Letzte/Referenz/native-sql.html – Orbling

+0

Funktioniert wie ein Charme, danke :) – a1337q

+0

Es ist perfekt, vielen Dank! – iarroyo

1

Sie können diesen Code ausführen es funktioniert:

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

'$ em-> createQuery()' führt nicht SQL, sondern DQL aus. – loostro

Verwandte Themen