DATE_FORMAT

Résolu
Bonjour,

J'ai un problème. Lorsque je Select la date simple dans ma requête de mon fichier PHP mon programme fonctionne mais dès que je met le DATE_FORMAT pour la formater plus rien ne marche. Alors que la requête fonctionne dans MySQL Query Browser.
Est-ce qu'il faut faire une conversion spécifique pour le transport selon vous ?

function getDateDirect($IDSITE) {
try {
// connexion à la base de données
$bdd = connexionBdd();
$requete = $bdd->prepare("SELECT DATE_FORMAT(date_mesure,"%d/%m/%Y") FROM mesure WHERE id_site=:id ORDER by date_mesure DESC LIMIT 1;");
$requete->bindParam(":id", $IDSITE);
// execution de la requete
$requete->execute() or die(print_r($requete->errorInfo()));
$ligne = $requete->fetch();
if ($requete->rowCount() == 1) {
$resultat = $ligne["date_mesure"];
}
// libération de la ressource
$requete->closeCursor();
return $resultat;
} catch (PDOException $e) {
print "Erreur !: " . $e->getMessage() . "<br/>";
die();
}
}


Configuration: Windows / Chrome 91.0.4472.77

4 réponses

  1. Modérateur
    Avec un alias ça marchera mieux
    SELECT DATE_FORMAT(date_mesure,"%d/%m/%Y") as date_mesure
    FROM mesure 
    WHERE id_site=:id ORDER by date_mesure DESC LIMIT 1;


    1. Le code corrigé :

      $bdd = connexionBdd();
      $requete = $bdd->prepare("SELECT DATE_FORMAT(date_mesure,"%d/%m/%Y") as fin FROM mesure WHERE id_site=:id ORDER by date_mesure DESC LIMIT 1;");
      $requete->bindParam(":id", $IDSITE);
      // execution de la requete
      $requete->execute();
      $ligne = $requete->fetch();
      var_dump($ligne);
      if ($requete->rowCount() == 1) {
      $resultat = $ligne["fin"];
      }
      // libération de la ressource
      $requete->closeCursor();
      return $resultat;

      1. J'ai trouvé !
        Il fallait mettre les simples quotes ' au début et à la fin de la requête comme il se sert des doubles " pour le DATE_FORMAT