[RESOLU] Champs de requete préparée PDO

Eléphanteau du PHP | 22 Messages

17 déc. 2015, 01:51

Bonsoir forum,

j'ai une requete préparée
$reponse = $bdd->prepare('SELECT COMPTE FROM ST_CPT WHERE NOM = :nom');
$reponse->execute(array('nom' => $NOM));
A la place de COMPTE je voudrais mettre une variable qui me permettrais de sélectionner le champ que je souhaite dans la table concernée

exemple variable : $champ=COMPTE2;

j'ai testé ceci mais ça ne fonctionne pas :
$reponse = $bdd->prepare('SELECT =:champ FROM ST_CPT WHERE NOM = :nom');
$reponse->execute(array('champ' => $champ,'nom' => $NOM));
es ce faisable? si oui comment l 'ecrit on?

merci
klorane

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 déc. 2015, 02:18

Bonsoir,

Dans une requête préparée avec PDO, la variable à remplacer doit être exprimée précédée de ":", par exemple :nom.
Dans ton cas, tu as donc un signe égale en trop.
Quand tout le reste a échoué, lisez le mode d'emploi...

ynx
Mammouth du PHP | 586 Messages

17 déc. 2015, 15:02

Salut,

En complément, il n'est pas possible dans une requête préparée d'utiliser un paramètre pour le nom d'une table : http://php.net/manual/fr/book.pdo.php#69304
Il faut donc obligatoirement passer par une concaténation classique.

Bonne journée

Eléphanteau du PHP | 22 Messages

17 déc. 2015, 22:23

Merci pour vos réponses.

Au moins je suis fixé^^

Bon week end.

Klorane