2013-06-19 2 views
0

В моем проекте Symfony 1.4 в одном из моих файлов class.php я использовал следующие коды для выполнения запроса и выборки объекта.Как поймать 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 $. Debug или var_dump ваш $ statement var сначала.

Doctrine btw находится на вершине PDO. По умолчанию конструкция PDO генерирует исключение при ошибке. Но вы должны установить обработку ошибок для запроса к исключению (http://php.net/manual/en/pdo.error-handling.php), если вы хотите использовать утверждения try-catch. Я точно не знаю, как справляется с этой доктриной 1.

Смежные вопросы