【发布时间】:2015-01-28 15:44:43
【问题描述】:
大家晚上好,我是 OOP 的新手,我遇到了一些问题。 我打电话后
private function __construct(){
try {
$this->_pdo = new PDO(
'mysql:host=' . config::get('mysql/host'),
'dbname=' . config::get('mysql/db'),
config::get('mysql/username'),
config::get('mysql/password'));
} catch (PDOException $e){
die($e->getMessage());
}
然后我打电话
$this->_pdo->prepare($sql)
它说致命错误:在非对象上调用成员函数 prepare()
所以我 var_dump($this->_pdo) 结果为 NULL。什么可能导致此问题?
提前感谢您的帮助。
【问题讨论】:
-
你在哪里调用它,在构造函数内部还是其他地方?
-
您的“dsn”字符串不正确。 PDO 构造函数采用三个参数和一个“可选”选项数组。请参见第一个示例:pdo.construct.php。 'dsn' 应该类似于: mysql:host=' 。配置::get('mysql/host')。 ';dbname=' 。配置::get('mysql/db')。即一个字符串。澄清一下,“用户名”是第二个参数,密码是第三个。