Fehler mit einer Abfrage - Doctrine2/Symfony2
Ich versuche, führen Sie eine einfache Abfrage, aber ich kann nicht verstehen, wo liegt mein Fehler. Bitte um Hilfe!!
Dies ist in der repository-Klasse:
public function searchFriends ($param)
{
return $this->getEntityManager()
->createQuery('SELECT f FROM EMMyFriendsBundle:Friend f WHERE f.name='.$param)
->getResult();
}
Und dies ist, wie rufe ich es aus der controller-action:
$em = $this->getDoctrine()->getEntityManager();
$result = $em->getRepository('EMMyFriendsBundle:Friend')
->searchFriends($search->getWords());
Wenn es auf diese Weise, bekomme ich die folgende Fehlermeldung:
[Semantical Error] line 0, col 54 near 'Maria': Error: 'Maria' is not defined.
500 Internal Server Error - QueryException
Habe ich den gesuchten Wert in Anführungszeichen in dieser Weise:
public function searchFriends ($param)
{
return $this->getEntityManager()
->createQuery('SELECT f FROM EMMyFriendsBundle:Friend f WHERE f.name=" '.$param ' " ')
->getResult();
}
aber dann bekomme ich
[Syntax Error] line 0, col 59: Error: Expected end of string, got ' " '
500 Internal Server Error - QueryException
Könnten Sie mir bitte sagen, wie man die Abfrage richtig? Vielen Dank im Voraus!
BEARBEITEN
Ich auch so probiert:
public function searchFriends ($param)
{
$q = $this
->createQueryBuilder('f')
->where('f.name = :name')
->setParameter('name', $param)
->getQuery();
return $q->getResult();
}
mit dabei:
$em = $this->getDoctrine()->getEntityManager();
$result = $em->getRepository('EMMyFriendsBundle:Friend')
->searchFriends($search->getWords());
und es ist workiiing
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl ich würde nicht verwenden diese Art der übergabe von Parametern an eine Abfrage (check diese), dein Fehler ist in der Art und Weise, die Sie gebaut haben der string fehlt ein Punkt. Es sollte wie folgt sein:
Müssen Sie das literal-Ausdruck: