【发布时间】:2016-02-25 18:10:51
【问题描述】:
我正在尝试在 PHP 中创建一个非常简单的数据库连接类,但遇到了一些问题。
首先,这是我写的代码:
class db {
protected $db;
public function __construct() {
$this->db = new PDO('mysql:host=127.0.0.1;dbname=main', 'root', '');
}
}
每当我尝试从扩展我的数据库类的另一个类中调用 $db 时,我都会收到类似这样的错误:
致命错误:在 class.php 中的非对象上调用成员函数 prepare()
我在另一个类中调用数据库链接,如下例:
class example extends db {
public function challenge_exists($challenge) {
$query = $this->db->prepare('SELECT * FROM challenges WHERE challenge = :challenge');
$query->bindParam(':challenge', $challenge, PDO::PARAM_STR);
$query->execute();
if($query->rowCount() > 0) {
return true;
}
}
}
我不知道我做错了什么,如果有任何关于如何完成这项工作的建议,我将不胜感激。
【问题讨论】:
-
@AbraCadaver 哎呀,你是对的。
-
1.你怎么打电话给
$db2.你测试过确保连接成功了吗? 3. 在你的子类中你调用了父类的构造函数吗? -
@AbraCadaver 我将另一个类中的 $db 称为 $this->db 因为我已经扩展了它。我确信连接一定是成功的,因为我在尝试解决问题时已经对其进行了测试。
-
发布子类的构造函数。
-
@AbraCadaver 我更新了我的帖子。