Problème de syntaxe dans une requête sql
Résolu
stox
-
A.Nonymous -
A.Nonymous -
Bonjour,
J'ai un problème dans ma requête SQL, j'aimerais récupérer les infos d'une BDD après une certaine date. Lorsque je met cette date en dur, le code fonctionne bien :
$reponse = $bdd->query('SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= \'2012-6-21 17:01:00\' ');
Mais j'aimerais utiliser une variable date à la place, et là mon code ne fonctionne plus :
$debut = '2012-6-21 17:01:00'; // en réalité cette variable est récupérée via un formulaire
$reponse = $bdd->query('SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= \'$debut\' ');
Je pense qu'il doit s'agir d'une erreur de syntaxe mais je ne trouve pas ce qu'il faut changer.
J'ai un problème dans ma requête SQL, j'aimerais récupérer les infos d'une BDD après une certaine date. Lorsque je met cette date en dur, le code fonctionne bien :
$reponse = $bdd->query('SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= \'2012-6-21 17:01:00\' ');
Mais j'aimerais utiliser une variable date à la place, et là mon code ne fonctionne plus :
$debut = '2012-6-21 17:01:00'; // en réalité cette variable est récupérée via un formulaire
$reponse = $bdd->query('SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= \'$debut\' ');
Je pense qu'il doit s'agir d'une erreur de syntaxe mais je ne trouve pas ce qu'il faut changer.
3 réponses
-
A priori, c'est une erreur PHP plus que SQL.
Attention à l'usage des simplte et double-quotes.
Pour rappel, c'est seulement dans des double-quotes que les variables peuvent être interprétées.
Attention au format de date, ça pourrait poser problème : 2012-06-21 17:01:00 serait mieux.-
J'ai essayé ça aussi mais ça ne fonctionne pas non plus.
je récupère la date et je la formate de la manière suivante :
$chaine = $_POST['date_debut'];
$time = strtotime($chaine);
$mydate = date('y-m-d H:i:s',$time);
je crois que c'est plutôt dans la requête que ça pose problème, je ne sais pas sous quelle forme mettre ma variable $mydate.
quand je fais un echo $mydate, ça me retourne bien la date sous la forme :
2012-6-21 17:01:00 -
-
-
-
-
$reponse = $bdd->query('SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= \'$debut\' ');
Et bien tu utilises un variable dans des guillemets de type '
$reponse = $bdd->query("SELECT Date_heure,P1,DATE(Date_heure) AS Date,TIME(Date_heure) AS Time FROM puissance WHERE Date_heure >= '$debut' ");
Essaies avec ceci -