Variable php dans une requête sql

Résolu/Fermé
Gotruc Messages postés 14 Date d'inscription dimanche 2 décembre 2012 Statut Membre Dernière intervention 27 février 2018 - 9 mars 2015 à 19:43
Gotruc Messages postés 14 Date d'inscription dimanche 2 décembre 2012 Statut Membre Dernière intervention 27 février 2018 - 9 mars 2015 à 22:45
Bonjour,
Cela fait maintenant 2 jours que je suis bloqué sur une ligne de code. Après avoir cherché et testé une bonne demi-douzaine de solutions trouvées sur internet, ça ne marche toujours pas donc j'ai craqué et je post ici.

J'aimerais donc mettre une variable php dans ma requête sql, voici le code:
$id = $_GET['id'];
$req = $bdd->query("SELECT id, lieu, heure, nom, salle, adresse, prix, description, DATE_FORMAT(date, \'%d/%m/%Y\') AS date_fr FROM bdfconcerts WHERE id= $id");


Je sais que cette technique ne marche pas mais c'est pour que ça soit plus visible.

En gros, je veux juste placer ma variable $id dans ma requête.

Merci d'avance.

1 réponse

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
Modifié par jordane45 le 9/03/2015 à 21:29
Bonjour,

Déjà .. avant d'utiliser une variable il est fortement conseillé de s'assurer qu'elle existe bien ( grâce à ISSET).
Ensuite, il vaut mieux séparer la requête de son exécution... ainsi.. on peut en faire un ECHO et voir ce qui cloche dedans.
Et enfin... tu nous dis que ça ne fonctionne pas... mais n'aurais tu pas un message d'erreur ??

Regardes ceci :
$id = isset$_GET['id'])?$_GET['id']:NULL;
if($id){
//Bloc try/Catch pour détecter les erreurs...
 try {

//création de la requête
//(avec des retours à la ligne..cela la rend plus lisible et plus facile
// à débuguer si nécéssaire...)
 $sql = "SELECT id
                 , lieu
                , heure
                , nom
                , salle
                , adresse
                , prix
                , description
                , DATE_FORMAT(date, \'%d/%m/%Y\') AS date_fr 
          FROM bdfconcerts 
          WHERE id= '$id' ";
   $req = $bdd->query($sql);
  }catch(Exception $e) {
    echo '<pre><br>Exception -> '.$e->getMessage();
    echo '<br> Requête :<br>'.$sql
    echo '</pre>';
  }
}else{
 echo "No ID";
}



Cordialement,
Jordane
1
Gotruc Messages postés 14 Date d'inscription dimanche 2 décembre 2012 Statut Membre Dernière intervention 27 février 2018 1
Modifié par Gotruc le 9/03/2015 à 22:50
J'avais un message d'erreur 500.

Du coup, un ami a réglé le problème comme ça:

$req = $bdd -> prepare('SELECT id, lieu, heure, nom, salle, adresse, prix, description, DATE_FORMAT(date, "%d / %m / %Y") AS date_fr FROM bdfconcerts WHERE id=:id') ;
$req -> bindValue(':id', $id, PDO::PARAM_INT) ;
$req -> execute() ;


Mais merci pour les conseils quand même.
0