gpt4 book ai didi

php - 如何访问类中的PDO对象?

转载 作者:行者123 更新时间:2023-11-29 23:53:49 24 4
gpt4 key购买 nike

我正在尝试构建一个简单的数据库类。在构造函数中,我正在初始化与 MySQL 数据库的 PDO 连接。我将此连接分配给数据库类中的私有(private)变量。然后我想从同一类中的公共(public)函数访问该变量以查询数据库。不幸的是,我不断收到如下错误:

fatal error :在非对象上调用成员函数prepare()。

下面是我正在使用的数据库类的代码:

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");

任何有关错误原因的建议将不胜感激。

最佳答案

您的构造函数有两个问题:

  1. 拼写错误:__contruct() 应该是 __construct()
  2. 它是私有(private)的,因此您无法从类外部实例化它。

#2 不一定是问题,但您需要一个静态方法来对其执行任何操作。

关于php - 如何访问类中的PDO对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25468555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com