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

时间:2011-04-24 19:47:30

标签: php pdo

我有这个错误,而且这条线是这样的:

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

$ 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());
            }
    }
提前thx:)

2 个答案:

答案 0 :(得分:39)

你可能写了一个错字:

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

答案 1 :(得分:9)

您可能打算写$this->db而不是$this->$db。前者访问属性db,后者访问属性,这些名称存储在$db变量中。并且由于未定义此变量,您最终将访问一个空属性,如错误消息所示。