我有这个错误,而且这条线是这样的:
$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:)
答案 0 :(得分:39)
你可能写了一个错字:
$stations=$this->db->query('SELECT * from service_stations');
// ^
// No $ here ----/
答案 1 :(得分:9)
您可能打算写$this->db
而不是$this->$db
。前者访问属性db
,后者访问属性,这些名称存储在$db
变量中。并且由于未定义此变量,您最终将访问一个空属性,如错误消息所示。