【发布时间】:2015-06-27 17:56:56
【问题描述】:
我一直在忙于创建自己的框架(以在这方面变得更有经验),并且偶然发现了一个我无法通过搜索谷歌来解决的错误......哇......
我想从数据库中获取数据,放在一个对象/类中。我以前做过,以我在学校学习的不同方式,但我想对其进行调整并使其更具动态性,以便我可以在我的框架中使用它。
我偶然发现的问题如下:
SQLSTATE[HY000]: General error: could not call class constructor on line 96
这是我的数据库类中的函数:
public function getObject($query, $classRootPath)
{
try {
//Check if slashes are double already and make them if not
if(!strpos($classRootPath, "\\\\")) {
$classRootPath = str_replace("\\","\\\\",$classRootPath);
}
$statement = $this->pdo->prepare($query);
$statement->execute(\PDO::FETCH_CLASS, "Campers\\Camper"); // I want this path to be $classRootPath once it is working with this dummy data
return $statement->fetchAll();
// return $this->pdo->query($query)->fetchAll(\PDO::FETCH_CLASS, "Campers\\Camper");
} catch (\PDOException $e) {
throw new \Exception("DB receive object failed: " . $e->getMessage());
}
}
这个函数嵌套在Database中,类名为Database/Database.php
下面的类嵌套在Campers中,被称为Camper.php
class Camper {
public $ID, $date, $camperID;
public function __construct($ID, $date, $camperID)
{
$this->ID = $ID;
$this->date = $date;
$this->camperID = $camperID;
}
}
我能想到这不起作用的唯一原因是调用"Campers\\Camper" 在Database 之上调用,但我不知道如何逃避。我试过..\,但我得到了错误,这是我能得到的最接近的。这里虽然可以找到类,但是找不到Camper的构造函数...
我已经测试了我的数据库类/连接是否有效,所以这不是问题。
我的表结构与我的 Campers 类构造函数相匹配。
【问题讨论】:
标签: php database pdo constructor namespaces