【发布时间】:2014-08-24 04:32:12
【问题描述】:
我正在尝试构建一个简单的数据库类。在构造函数中,我正在初始化与我的 MySQL 数据库的 PDO 连接。我将此连接分配给数据库类中的私有变量。然后我想从同一个类中的公共函数访问该变量来查询数据库。不幸的是,我不断收到如下错误:
Fatal error: Call to a member function prepare() on a non-object.
下面是我正在使用的数据库类的代码:
class Database{
private $conn;
private function __contruct(){
try{
$this->conn = new PDO('mysql:host=myhost;dbname=mydatabase', 'username', 'password', array(PDO::ATTR_PERSISTENT => true));
} catch (PDOException $e) {
print "Error!: " . $e->getMessage()."<br/>";
die();
}
}
public function query($q){
$query = $this->conn->prepare($q);
$query->execute();
$result = $query->fetchAll();
print_r($result);
}
}
然后我有以下代码来利用这个类。
$db = new Database();
$db->query("SELECT * FROM FOO");
任何关于错误原因的建议将不胜感激。
【问题讨论】:
-
您在
function __contruct()中有错字。它永远不会被自动调用。 -
PHP 不知道如何“构造”