Lier une valeur à plusieurs paramètres identiques
Salut,
Je rencontre une difficulté pour lier une même valeur plusieurs fois dans une requête.
Par exemple :
Code:
1 2 3 4
| $sql = 'SELECT * FROM table WHERE colonne1 = :valeur OR colonne2 = :valeur;';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':valeur', $valeur); |
Ceci fonctionne très bien. Ca ne fonctionnait pas avant PHP 5.2.1 mais le bug a été corrigé depuis. Je suis en PHP 5.4.10.
Voulant me passer de l'émulation des requêtes préparées par PDO et passer directement par le système de MySQL, je désactive l'attribut qui va permettre ça :
Code:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
Et à ce moment-là, la requête ci-dessus ne fonctionne plus et j'ai l'erreur "Invalid parameter number" (typiquement l'erreur avant la correction du bug des versions antérieures à la 5.2.1).
Une solution serait bien évidemment de modifier le code pour ajouter autant de bind que de paramètres. Mais ça signifie passer dans tous les fichiers pour ne pas louper une seule requête de ce genre ... ce qui est assez risqué.
Donc si quelqu'un a une autre solution ...
Merci !