उत्तर:
तो आपने कम से कम दो गलतियाँ की हैं। पहला यह है कि @Alarid ने कहा:आपको अपनी सरणी नहीं लगानी चाहिए। दूसरा यह है कि आपको DoctrineDBALTypes Conversion
. का उपयोग करना होगा IN clause
. के लिए तैयार कथन चलाते समय।
और अंत में आपकी क्वेरी इस प्रकार है:
$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();
या वैकल्पिक:
$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)
)
;