Avatar ·

Cómo vincular un array a la condición IN() en una consulta PDO

¡Hola a todos! Soy nuevo en PHP y PDO, y me encontré con un problema. Tengo un array de IDs de usuarios, por ejemplo: [1, 5, 7, 12]. Necesito seleccionar de la tabla users aquellos cuyo id esté en este array. En SQL normal escribiría: SELECT * FROM users WHERE id IN (1, 5, 7, 12) Pero, ¿cómo hacerlo con PDO usando consultas preparadas? Intenté así: ```php $ids = [1, 5, 7, 12]; $stmt = $pdo->prepare('SELECT * FROM users WHERE id IN (:ids)'); $stmt->execute([':ids' => $ids]); ``` Pero no funciona — PDO se queja de que espera un valor escalar, no un array. Intenté con implode y pasar un string — tampoco es una opción, porque rompe la seguridad. ¿Cómo vincular correctamente un array a IN()? ¿Necesito generar placeholders dinámicamente? ¿O hay algún truco con PDO? Agradecería una respuesta detallada con ejemplos. P.D. Uso PHP 8.1 y MySQL. <<>>

El problema y su raíz

PDO no admite la vinculación de un array a un solo placeholder en la condición