以下に示すように、IN句のドクトリンエンティティマネージャーを使用して生のSQLクエリを実行しようとしていました。
$idSArray = Array ( [0] => 1 [1] => 2 )
$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)');
$params = array(
'ids' => implode( ",", $idSArray )
);
$stmt->execute($params);
$results = $stmt->fetchAll();
しかし、Id = 1 の結果しか得られません。WHERE IN 条件を次のようにハードコードすると、
WHERE t1.id = t2.matchId AND t1.id IN (1,2)');
次に、両方の ID の結果を取得します。$params 配列を渡す際に私が間違っていることを誰かに教えてもらえますか。1,2 を出力する implode の結果も出力しました。そのため、間違いを見つけることができず、IN 句を使用して生の SQL クエリを実行する方法もわかりません。