Page 1 sur 1

Quelle synthax pour une requête préparée qui utilise IN ?

Posté : 16 janv. 2015, 19:10
par wwwbillgates
Bonjour, je n'arrive pas à utiliser ma variable $preview avec IN dans une requête préparée. Pouvez-vous m'aider svp car je ne trouve pas la syntaxe sur Google.
$articles_slider_sql = $bdd->prepare("
						SELECT id
						FROM cadeauxplaisir_articles
						WHERE afficher = :afficher
						AND id != :id_article
						AND articles_magic = :choix
						AND id IN( :preview )
						ORDER BY ordre
						");
$articles_slider_sql->execute(array(
						'afficher' => 1,
						'id_article' => $id_article,
						'choix' => 1,
						'preview' => $preview
						));									
$articles_slider_sql->setFetchMode(PDO::FETCH_ASSOC);

Re: Quelle synthax pour une requête préparée qui utilise IN

Posté : 16 janv. 2015, 23:14
par xTG
Comme c'est une requête préparée tout ce que tu mets dans le execute est échappé.
Donc cela ne peut pas fonctionner.
Si $preview = 1,2,3,4 alors il te le transformera en "1,2,3,4" considérant que c'est une chaîne de caractères.

Dans ton cas il ne semble pas intéressant d'utiliser une requête préparée.
Je te recommande à la place d'utiliser query() couplé avec quote() pour l'échappement.

Re: Quelle synthax pour une requête préparée qui utilise IN

Posté : 17 janv. 2015, 11:10
par wwwbillgates
ok merci!