Problème de variable dans requête MYSQL WHERE
SteveF
-
SteveF -
SteveF -
Bonjour à tous
Voici mon souci j'ai une base MYSQL que j'aimerai interroger via PDO de la manière suivante :
Cette ligne ne fonctionne pas car je n'arrive pas à intégrer une variable déclarée plus haut dans ma page (et que je retrouve bien en écho)
Par contre cette ligne fonctionne en mode manuel
A ce moment je récupère bien ma valeur sans problème
Merci de toute l'aide que vous pourrez m'apporter
Voici mon souci j'ai une base MYSQL que j'aimerai interroger via PDO de la manière suivante :
Cette ligne ne fonctionne pas car je n'arrive pas à intégrer une variable déclarée plus haut dans ma page (et que je retrouve bien en écho)
<?php echo $_GET["ph_id"];
$id=$_GET['ph_id'];
echo $id;
?><br />
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id=\''$id'\'');
Par contre cette ligne fonctionne en mode manuel
<?php echo $_GET["ph_id"];
$id=$_GET['ph_id'];
echo $id;
?><br />
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id=\'ph_A001\'');
A ce moment je récupère bien ma valeur sans problème
Merci de toute l'aide que vous pourrez m'apporter
4 réponses
-
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id=\''$id'\'');
Normalement :
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id=\''.$id.'\''); -
salut,
Passe plutôt par les requêtes préparées, c'est plus sécurisé et ça pose moins de souci.
exemple
<?php $req = $bdd->prepare('SELECT path, id FROM id_ph WHERE id= ?'); $req->execute(array($id)); ?> -
Merci de ta réponse mais le problème persiste même si ta proposition permet un bien meilleur code et je t'en remercie :)
car
$req = $bdd->prepare('SELECT path, id FROM id_ph WHERE id= '$id'');
$req->execute(array($id));
Ne fonctionne pas si j'inclue la variable-
-
Ok je vais potasser ce lien merci beaucoup :)
En attendant j'ai ce code qui fonctionne finalement je le met pour aider au cas où ce n'est pas aussi bien que le code que tu m'as proposé mais bon ca fait le boulot en attendant mieux :)
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id='.$id.'');
Merci
-
-
À coup sûr, c'est cette ligne qui pose problème :
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id=\''$id'\'');
Il y a trop de guillemets autour de la variable $id. Ou alors il faut ajouter un point de part et d'autre de la variable (pour la concaténer à la chaine de caractère).