2011-04-24 26 views
6

he conseguido que el error y la línea era la siguiente:Fatal error: No se puede acceder a la propiedad vacía

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

la variable db $ se declara privada y lo uso en la función __construct así:

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()); 
      } 
    } 

THX de antemano :)

+1

Deje de escribir etiquetas en los títulos de sus preguntas. Lo has hecho casi todos. –

+0

Hice casi el mismo error, la respuesta a esta pregunta es muy útil –

Respuesta

39

Usted probablemente ha hecho un error tipográfico:

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

LOL gracias ¡Me estaba volviendo loco! – plushyObject

9

Probablemente haya querido escribir $this->db en lugar de $this->$db. El primero accede a la propiedad db, este último accede a la propiedad, ese nombre se almacena en la variable $db. Y como esta variable no está definida, terminas accediendo a una propiedad vacía, como indica el mensaje de error.

+0

Gracias, estaba a punto de tirar la computadora: D – plushyObject

+0

En serio, cometo errores con $ y ubicación variable todo el tiempo, ya sea dejando de lado o acceso a la propiedad del objeto. PHP tiene algunos problemas de usabilidad con su diseño de lenguaje. – user2867288

Cuestiones relacionadas