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 :

PDOStatement - Deprecated: Creation of dynamic property Article::$id


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut PDOStatement - Deprecated: Creation of dynamic property Article::$id
    Bonjour à tous, je suis actuellement les tutos PHP de Grafikart qui était sur PHP 7.1

    J'en suis à la connexion à la base de données avec la Class PDO et PDOStatement pour récupérer les infos sous forme soit de tableau PDO::FETCH_BOTH , soit d'objet PDO::FETCH_OBJ.

    Jusque là tout va bien, je récupère mon objet stdClass.

    La ou cela se complique c'est quand on souhaite donner un nom de class à l'objet avec PDO::FETCH_CLASS, $class_name

    Depuis la Version PHP 8 : il est indiqué -> Deprecated: Creation of dynamic property

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public function query($statement, $class_name){
    		$req = $this->getPDO()->query($statement);// 'SELECT * FROM article'
    		$req->setFetchMode(PDO::FETCH_CLASS, $class_name);
    		$datas = $req->fetchAll();
    		return $datas;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php foreach($db->query('SELECT * FROM article', 'Article') as $post): 
    ?>
    	<li>
    		<a href="index.php?=post&id=<?= $post->id; ?>"><?= $post->titre; ?></a>
    	</li>
    	<?php endforeach; ?>

    Comme le tuto est un peu ancien, avant le problème ne se posait pas... du coup je suis bloqué... j'ai pu lire que l'on pouvait supprimer les message d'erreur... mais l'idée serait plutôt d'apprendre avec les nouvelles bonnes pratiques...

    Pouvez vous m'indiquer (pédagogiquement) le problème et la piste pour résoudre le problème... pour que je puisse poursuivre mon apprentissage sur de bonnes bases.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Avant PHP 8.2 nous pouvions faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $o = new stdClass(); // Instanciation d'un objet anonyme
    $o->foo = 'bar'; // Création d'une propriété dynamique
    À partir de PHP 8.2 ce n'est plus possible.
    Génèse de cette évolution => https://wiki.php.net/rfc/deprecate_dynamic_properties

    Il faudrait s'assurer que ta classe dispose bien des propriétés correspondant aux noms des colonnes retournées par ton SQL.

  3. #3
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut
    Super Merci "Séb" problème résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/06/2007, 13h27
  2. Dynamic properties task
    Par Ravager62 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/03/2007, 09h06
  3. Creation projet Web dynamic
    Par menuge dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/10/2006, 15h27

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