sql >> Database >  >> RDS >> Mysql

Symfony2.3 onbewerkte sql-query met IN-clausule

Antwoord:

Er zijn dus minstens twee fouten die je hebt gemaakt. De eerste is wat @Alarid zei:je moet je array niet imploderen. De tweede is dat u DoctrineDBALTypes Conversion . moet gebruiken voor IN clause bij het uitvoeren van een voorbereide verklaring.

En tot slot gaat je vraag als volgt:

$stmt = $this->getDoctrine()->getEntityManager()
        ->getConnection()
        ->prepare('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)');

$stmt->bindValue('ids', $idSArray, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
$stmt->execute();

Of alternatief:

$stmt = $this->getDoctrine()->getEntityManager()
    ->getConnection()
    ->executeQuery('SELECT t1.id , t1.name , t2.start_date , t2.end_date
        FROM table1 t1 , table2 t2
        WHERE t1.id = t2.matchId AND  t1.id IN (:ids)',
        array('ids' => $idSArray),
        array('ids' => \Doctrine\DBAL\Connection::PARAM_INT_ARRAY)
    )
;


  1. Hoe krijg je de volgende waarde in een reeks in een variabele?

  2. Hoe worden gecombineerde resultaten van twee MySQL-tabellen uitgevoerd met PDO

  3. Installeer MySQL op een Mac

  4. MySQL-versiebeheer - Subversion