6 votes

Erreur fatale : Impossible d'accéder à une propriété vide

J'ai obtenu cette erreur et la ligne était la suivante :

   $stations=$this->$db->query('SELECT * from service_stations');

la variable $db est déclarée privée et je l'utilise dans la fonction __construct comme ceci :

public function __construct() {
                    //after including the config file
                $host=DB_HOST;
            $dbname=DB_NAME;
            $dbuser=DB_USER;
            $dbpsw=DB_PASSWORD;
         try{
            $pdo_options[PDO::ATTR_ERRMODE]=PDO::ERRMODE_EXCEPTION;
            $this->db=new PDO('mysql:host='.$host.';dbname='.$dbname, $dbuser, $dbpsw, $pdo_options);
            }
         catch(Exception $e)
            {
            die('Erreur: '.$e->getMessage());
            }
    }

Merci d'avance :)

39voto

Jon Points 194296

Vous avez probablement fait une faute de frappe :

$stations=$this->db->query('SELECT * from service_stations');
//               ^
// No $ here ----/

9voto

NikiC Points 47270

Vous vouliez probablement écrire $this->db au lieu de $this->$db . Le premier accède à la propriété db Ces derniers accèdent à la propriété, dont le nom est stocké dans la base de données du $db variable. Et comme cette variable n'est pas définie, on finit par accéder à une propriété vide, comme l'indique le message d'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X