致命错误:无法访问空属性

Mal*_*loc 6 php pdo

我有这个错误,行是这样的:

   $stations=$this->$db->query('SELECT * from service_stations');
Run Code Online (Sandbox Code Playgroud)

$ db变量被声明为private,我在__construct函数中使用它,如下所示:

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());
            }
    }
Run Code Online (Sandbox Code Playgroud)

thx提前:)

Jon*_*Jon 39

你可能写错了:

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


Nik*_*kiC 9

你可能想写$this->db而不是$this->$db.前者访问属性db,后者访问属性,这些名称存储在$db变量中.并且由于未定义此变量,因此最终会访问空属性,如错误消息所示.