2013-06-19 70 views
0

在我的一个class.php文件中的Symfony 1.4项目中,我使用以下代码来执行查询和获取对象。如何捕获fetchAll(PDO :: FETCH_OBJ)

$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"; 
    } 

但是,我不这样做的第二行。当我运行该页面时,它总是显示以下错误:

Fatal error: Call to a member function fetchAll() on a non-object in

\lib\model\doctrine\DeductionInfo.class.php on line 104

我该如何解决这个问题?

+0

你能告诉我为什么你使用这种方法来查询你的数据库?使用ORM的目标是*避免*从头构建查询,但要使用模型抽象... – j0k

+0

说实话,我不知道。这是我必须完成的一半旧软件 – HasanCseBuet

回答

1

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

学说btw是在PDO之上。默认情况下,PDO构造在错误时抛出异常。但是如果要使用try-catch语句,则必须将错误处理设置为异常(http://php.net/manual/en/pdo.error-handling.php)。我不知道第一条原则如何处理这个问题。