Réponse :
Il y a donc au moins deux erreurs que vous avez commises. Le premier est ce que @Alarid a dit :vous ne devriez pas imploser votre tableau. La seconde est que vous devez utiliser DoctrineDBALTypes Conversion
pour la IN clause
lors de l'exécution d'une instruction préparée.
Et enfin votre requête est la suivante :
$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();
Ou alternative :
$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)
)
;