J'y ai déjà répondu et je ne vois pas en quoi c'est illogique. Comment PDO devrait-il savoir que la valeur ainsi bindée en représente en réalité plusieurs ? Comment saurait-il la redécouper ou lui faire subir je ne sais quel traitement ? Vous attendez de PDO des choses pour lequel il n'est pas prévu sans compter les problèmes que cela pourrait engendrer.
En réalité, j'ai écrit PDO, mais tel est le fonctionnement des requêtes préparées. Vous aurez le même résultat avec mysqli, sqlite3, oci8, etc.
C'est à vous, si vous voulez utiliser une requête préparée, de faire en sorte qu'à chaque valeur corresponde un paramètre.
PS : il me semble que seule l'API d'Oracle (ocilib ?) permet le bind de "tableaux" de valeurs. PHP/PDO ne peut donc pas apporter de solution au bind de plusieurs valeurs pour un même paramètre si ce n'est pas standardisé au niveau du SGBD et de son API.
Et une citation du wiki (RFC) de php.net :
En réalité, j'ai écrit PDO, mais tel est le fonctionnement des requêtes préparées. Vous aurez le même résultat avec mysqli, sqlite3, oci8, etc.
C'est à vous, si vous voulez utiliser une requête préparée, de faire en sorte qu'à chaque valeur corresponde un paramètre.
PS : il me semble que seule l'API d'Oracle (ocilib ?) permet le bind de "tableaux" de valeurs. PHP/PDO ne peut donc pas apporter de solution au bind de plusieurs valeurs pour un même paramètre si ce n'est pas standardisé au niveau du SGBD et de son API.
Et une citation du wiki (RFC) de php.net :
Citation :Rejected Features
* Add support for “IN (?)” type prepared placeholders. ⇐ native prepared statement mandate that all placeholders only handle a single scalar value