Problème de variable dans requête MYSQL WHERE

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)

<?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

aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
 
$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.'\'');
1
aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
 
Sinon
$reponse = $bdd->query("SELECT path, id FROM id_ph WHERE id= '$id' ");
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
C'est bien ce qu'il me semblait aussi :o)
0
SteveF
 
Oui c'était bien une histoire de quote comme trop souvent :(

Avis aux gens en galère cette ligne fonctionne :
$reponse = $bdd->query('SELECT path, id FROM id_ph WHERE id='.$id.''); 
0
SteveF
 
En tout cas merci à tous ce forum est très réactif :) C'est très plaisant :)
0
titus
 
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)); 
?>
0
SteveF
 
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
0
titus
 
si on préparer une requête, c'est pas pour y mettre la variable dedans, on utilisera dans ce cas des marqueur sois ? ou :lenom

http://www.siteduzero.com/tutoriel-3-14506-lire-des-donnees.html#ss_part_4
0
SteveF
 
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
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
À 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).
0