PHP:分配新的 PDO 作为对象属性

标签 php mysql pdo scope prepare

我正在尝试建立与我的 MySQL 数据库的 PDO 连接。该 PDO 也由此类的子类继承,从这些子类中调用特定于连接的函数。当我从子类中调用这些特定于连接的函数时,出现错误。

因此在父类中,我有以下代码:

...
protected $pdo;

public function __constructor() { //Check if public
    try {
        $pdo_local = new PDO(C_DB_PDODRIVER . ":host=" . C_DB_HOST . ";dbname=" . C_DB_DATABASE, C_DB_USERNAME, C_DB_PASSWORD);
        $this->pdo = $pdo_local;
    } catch (\PDOException $e) {
        header("Location: error.html");
        exit;
    }
}
...

但是,每当我尝试调用 $this->pdo 的准备语句时,都会收到“调用成员函数prepare()” fatal error 。

$query = "SELECT * FROM stacks WHERE id = :id LIMIT 1";

$stm = $this->pdo->prepare($query);

$para = array("id"=>$id); //where $id is the input parameter of the function
$stm->execute($para);
$result = $stm->fetch();

我读到 PDO 数据对象是空对象,但我不明白为什么? $this->pdo = $pdo_local 不应该改变它吗?

我对 StackOverflow 还很陌生,如果这个问题有缺陷,我很抱歉。另外,如果您发现我的代码有任何可能的改进,请告诉我!

最佳答案

构造函数的正确函数名称是__construct

关于PHP:分配新的 PDO 作为对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34369373/

相关文章:

php - 将用户数据存储在 csv 文件与数据库中

php - 无法运行 propel :build-model in Symfony 1. 4 和 PHP 5.3,PHP fatal error :允许的内存大小

php - 从数据库存储和检索电子邮件正文时,在引号前加反斜杠。

mysql - 在带有 SQLSTATE 的 MySQL 中使用变量作为错误代码

php - 如何解决非法字符串偏移错误并显示以下代码片段中的表格?

php - 使用 PDO for mySQL 时遇到问题

php - 从未初始化的类型化属性中查找类型

php - MySQL 发送大量数据超时/崩溃

mysql - 纠正此查询

php - PDO 获取最后选定的行