2016-04-25 19 views
3

Ich habe versucht, diese SQL-Abfrage zu erstellen, und ich habe weiterhin einen Fehler mit einem 2. Parameter.createQueryBuilder und setParameter mit mehreren Parametern?

Vielleicht etwas Fehle ich hier.

Hier ist meine Anfrage:

$pointsTEF = $this->getDoctrine()->getManager(); 
       $pointsTEFs = $pointsTEF->createQueryBuilder('t') 
       ->select('t.points') 
       ->from('AppBundle:Tef', 't') 
       ->where('t.epreuve = :epreuve') 
       ->setParameter('epreuve',$valeur) 
       ->andWhere('t.resultat = :resultat') 
       ->setParameter('resultat',$valeurEpreuve) 
       ->getQuery() 
       ->getResult(); 

Ist dies die richtige Art und Weise setParameter der Verwendung von(); ?

Ausnahme beim ‚t0_.points AS points_0 FROM tef t0_ WHERE t0_.epreuve = Wählen Ausführung? UND t0_.resultat =? ' mit params [ "CE", "B1"]:

SQLSTATE [HY093]: Ungültige Parameternummer: Spalten/Parameter werden 1-basierte

Antwort

6

Tun Sie dies

->setParameters(array('param1'=> $param1, 'param2' => $param2)) 

Dokumentation

+3

Ich denke, dass es 'setParameters' anstelle von 'SetParamater' sein sollte – kkochanski

+0

Ja ist es, danke ich aktualisiert :) – Letsrocks

+0

Vielen Dank für das Angebot dieser Lösung, klingt für mich ziemlich logisch, ein Array() zu machen. Ich versuchte es jetzt und es gibt mir eine Fehlermeldung: Warning: Missing argument 2 für Lehre \ ORM \ Querybuilder :: setParameter(), genannt in AppBundle \ Controllers \ DemandesController.php auf der Leitung 250 und definiert | Quellcode: http://pastebin.com/UEtDUwgq – Cyberflow