在我的一个class.php文件中的Symfony 1.4项目中,我使用以下代码来执行查询和获取对象。
$statement = Doctrine_Manager::connection()->execute($query);
$resultset = $statement->fetchAll(PDO::FETCH_OBJ);
我尝试使用try-catch块来捕获任何运行时异常。我可以轻松地为第一行做到这一点,如
try {
$statement = Doctrine_Manager::connection()->execute($query);
}
catch (Exception $exc) {
echo "custom error message";
}
但是,我为第二行工作了。运行页面时,它总是显示以下错误
致命错误:在
中的非对象上调用成员函数fetchAll() 第104行的\ lib \ model \ doctrine \ DeductionInfo.class.php
我该如何解决这个问题?
答案 0 :(得分:1)
当然它似乎是一个无效的查询或类似的东西,导致var $语句中的非对象。首先调试或var_dump $ statement var。
Doctrine btw在PDO之上。默认情况下,PDO构造会在出错时抛出异常。但是,如果要使用try-catch语句,则必须将查询的错误处理设置为异常(http://php.net/manual/en/pdo.error-handling.php)。我完全不知道Doctrine 1处理这个问题的方式。