0

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

\lib\model\doctrine\DeductionInfo.class.php 在第 104 行

我该如何解决这个问题?

4

1 回答 1

1

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

顺便说一句,学说位于 PDO 之上。默认情况下,PDO 构造会在错误时引发异常。但是如果你想使用 try-catch 语句,你必须设置错误处理来查询异常(http://php.net/manual/en/pdo.error-handling.php )。我不知道 Doctrine 1 是如何处理这个问题的。

于 2013-06-19T06:36:36.250 回答