pdo et multiple value

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pdo et multiple value

Re: pdo et multiple value

par telnes » 18 mars 2011, 14:31

hello

il quote la chaine d'entier séparé par des virgules et ca met la grouille.

en plus pour un chiffre tu peut mettre un bind à PDO::PARAM_INT mais pour une chaine 1,2,3 ... c'est plus très INT et de plus ca marche pas avec le bind.

++

Re: pdo et multiple value

par moogli » 18 mars 2011, 13:10

Salut

Dans ton cas faut un mettre le dernier parametre du bind pour utiliser des entiers

Car les guillemets autour d'un entier ca passe mais parce le sgbd est sympa il ne devrait y en avoir ;)

Apres je sais comment pdo va gèrer les valeurs multiples dans le cas du in :/


@+

pdo et multiple value

par telnes » 18 mars 2011, 12:04

hello

petite question / best practice ...


lorsque l'on exécute une requête préparé avec PDO ou un paramètre va contenir plusieur valeur, de base ca pose un souci.

exemple :
$pdoReq = 'SELECT * FROM password WHERE idApplication IN(:applicationFilter)';
si :applicationFilter est égale à 1 (id)

pdo va faire
'SELECT * FROM password WHERE idApplication IN("1")';
la ca roule

si :applicationFilter est égale à 1,2,3

pdo va faire (un truc du genre)
'SELECT * FROM password WHERE idApplication IN("1,2,3")';
et la ... c'est pas bon :/

car on veux
'SELECT * FROM password WHERE idApplication IN(1,2,3)'; 
j'ai pas trouvé de bindParam qui dit n'échappe pas la chaine

donc la solution est de faire un str_replace de :applicationFilter par la chaine 1,2,3 dans la requete $pdoReq (préparée)

mais est ca la solution ou en existe il une autre ??

merci