В случае, если это поможет другим:
Я только что наткнулся на эту проблему со старой сборкой Zend 1.11, использующей Doctrine 2.0.5 (ish). Я обнаружил, что выше не работает с моим подключением PDO. Я считаю, что PDO добавляет кавычки вокруг параметра, и поэтому вы не можете использовать выше.
Единственный подход, который я нашел, который работает:
$types = [];
$binds = [];
$values = [];
foreach ($taskTypes as $taskType) {
$types[] = \PDO::INT;
$binds[] = '?';
$values[] = $taskType;
}
// Get Entity Manager from wherever
$conn = $entityManager->getConnection();
$stmt = $conn->executeQuery("SELECT COUNT(DISTINCT
t.int_task_type_id) as a_count
FROM tbl_xref_people_task t
WHERE t.bit_completed = true AND
t.int_people_id = :peopleId AND
t.int_task_type_id IN (" . implode(',', $binds) . ")",
$values,
$types
);
$stmt->execute();
$stmt->fetchAll(); // Fetch