【发布时间】:2011-10-10 10:14:24
【问题描述】:
我遇到了一个难以跟踪的错误,但我不确定是什么导致了这个错误。我有一个类 Property,我想使用名为 loadProperty() 的方法从表 property 中获取一个条目。此方法是单例类 (Registry) 的一部分。
public function loadProperty() {
$this->load('model', 'property');
$sth = $this->dbh->prepare("SELECT * FROM property WHERE subdomain = :subdomain LIMIT 1");
$sth->setFetchMode(PDO::FETCH_CLASS, 'property');
$data = array('subdomain' => $this->router->subdomain);
try {
$sth->execute($data);
if ($sth->rowCount() == 1) {
$this->property = $sth->fetch();
} else {
$this->property = null;
}
} catch (PDOException $exception) {
// HANDLING EXCEPTION
}
}
方法的第一行加载模型。它只是查找类文件并使用 require_once 来要求它。
当我使用 PDO::FETCH_BOTH 而不是 PDO::FETCH_CLASS 时,所有这些都可以正常工作。我的猜测是 PDO 在幕后做了一些我不知道的事情,但这会导致我的 loadProperty 方法被无限次调用。
我在这里俯瞰什么?
【问题讨论】:
-
你的
property类是什么样的? -
Phil,尽管你没有给我答案,但你的问题是在正确的时刻出现的。简而言之,即使 Registry 类是单例,我也不止一次调用它的私有构造函数。我想我想一次做太多事情。感谢您的宝贵时间。
-
@BartJacobs:请将您的解决方案添加为答案并接受它;)这会将问题标记为已回答。谢谢!
标签: php pdo infinite-loop