Problème de variable dans requête MYSQL WHERE

Fermé
SteveF - Modifié par SteveF le 6/06/2012 à 21:25
 SteveF - 7 juin 2012 à 00:28
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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
7 juin 2012 à 00:12
$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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
7 juin 2012 à 00:13
Sinon
$reponse = $bdd->query("SELECT path, id FROM id_ph WHERE id= '$id' ");
0
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
7 juin 2012 à 00:14
C'est bien ce qu'il me semblait aussi :o)
0
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
En tout cas merci à tous ce forum est très réactif :) C'est très plaisant :)
0
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
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
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
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 mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
7 juin 2012 à 00:10
À 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