IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Impossible de récupérer mes dates de ma BD


Sujet :

PHP & Base de données

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 1
    Par défaut Impossible de récupérer mes dates de ma BD
    Bonjour à tous,

    Je n'arrive pas à récupérer correctement mes attributs dateCreation et dateModification ( en DATETIME dans ma BD)

    Code récupération d'un objet Lieu de ma BD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                $bdd  = DBLink::connect2db(MYDB, $message);
     
                $stmt=$bdd->prepare("SELECT * FROM ".self::TABLE_NAME." WHERE idLieu = :idLieu"); // on prépare notre requête
                $stmt->bindValue(':idLieu', $idLieu);
                $stmt->execute();
                $stmt->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, "Lieu\Lieu",array('id','nom','latitude','longitude','pays','province
                ','localite','codePostal','rue','numero','dateCreation','dateModification','extra'));
    Constructeur de l'objet Lieu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     public function __construct($id, $nom, $latitude, $longitude, $pays, $province, $localite, $codePostal,
                                    $rue, $numero, $dateCreation, $dateModification, $extra)
        {
            $this->id = $id;
            $this->nom = $nom;
            $this->latitude = $latitude;
            $this->longitude = $longitude;
            $this->pays = $pays;
            $this->province = $province;
            $this->localite = $localite;
            $this->codePostal = $codePostal;
            $this->rue = $rue;
            $this->numero = $numero;
            $this->dateCreation = $dateCreation;
            $this->dateModification = $dateModification;
            $this->extra = $extra;
    }

    Lorsque je fais monObjet->nom , je récupère bien le nom qui se trouvait dans ma BD . Mais lorsque je fais monObjet->dateCreation , je recupere une String 'dateCreation'

    Avez vous des idées ?

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    J'aurais tendance à dire que tu as un problème de cohérence entre le nom de ta colonne et le nom de ton paramètre, mais comme tu utilises une requête SELECT *, c'est impossible à vérifier dans ton code.
    Vérifie par rapport aux noms de colonnes et éventuellement modifie ta requête pour lister exhaustivement les colonnes remontées.
    Il est également possible que PDO force toutes les colonnes en minuscules et que tu reçoives datecreation au lieu de dateCreation. Tu peux forcer ça sur la connexion avec l'attribut ATTR_CASE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $bdd  = DBLink::connect2db(MYDB, $message);
    $bdd->setAttribute( PDO::ATTR_CASE, PDO::CASE_NATURAL ); // on force PDO à respecter la casse reçue
     
    $stmt=$bdd->prepare("SELECT date_creation as dateCreation FROM ".self::TABLE_NAME." WHERE idLieu = :idLieu"); // on prépare notre requête
    Au passage, tu n'as pas obligé de faire un énorme constructeur, tu peux simplement faire correspondre le nom des données remontées avec les propriétés de ton objet et PDO fera le reste.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Impossible de récupérer mes données de la base
    Par sky88 dans le forum Android
    Réponses: 10
    Dernier message: 05/03/2015, 22h49
  2. Réponses: 5
    Dernier message: 09/10/2010, 10h42
  3. Réponses: 9
    Dernier message: 12/05/2006, 09h06
  4. [Outlook] Impossible de récupérer mes messages ...
    Par Rumeurs dans le forum Outlook
    Réponses: 4
    Dernier message: 13/04/2006, 19h05
  5. Réponses: 3
    Dernier message: 04/08/2004, 19h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo