如何捕获fetchAll(PDO :: FETCH_OBJ)

时间:2013-06-19 05:37:56

标签: php exception doctrine symfony-1.4 fetch

在我的一个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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

当然它似乎是一个无效的查询或类似的东西,导致var $语句中的非对象。首先调试或var_dump $ statement var。

Doctrine btw在PDO之上。默认情况下,PDO构造会在出错时抛出异常。但是,如果要使用try-catch语句,则必须将查询的错误处理设置为异常(http://php.net/manual/en/pdo.error-handling.php)。我完全不知道Doctrine 1处理这个问题的方式。