Mi código:parámetros de unión para la cláusula WHERE IN con DOP
$myArray = implode($myArray, ',');
$sth = $dbh->prepare('SELECT foo FROM bar WHERE ids IN (:ids)');
$sth->bindParam(':ids', $myArray);
$sth->execute();
$result = $sth->fetch();
echo $sth->rowCount();
Siempre muestra un conteo de 1, pero cuando me salto la parametrización y simplemente añadir la propia variable en su lugar, me sale un recuento exacto. ¿Que está pasando aqui?
¿En serio? Las declaraciones preparadas no pueden manejar eso? Qué tonto es eso:/ – hoppa
tenga cuidado con la inyección sql. – Dani
@hoppa: pueden manejarlo así: 'id IN (: id1,: id2,: id3 ...)', obtienes el patrón. Estás mejor con el método de la vieja escuela. – Maerlyn