5

dbal在我的 Symfony2 应用程序中使用 Doctrine 的服务。

我查询一个不存在的表,这会引发错误:

SQLSTATE [42S02]:未找到基表或视图:1146 表“log.requests_20130311”不存在。

Symfony2 在我之前就捕捉到了这一点,即使是在一个try-catch块中。我不希望这会杀死我的应用程序。我该如何处理?

4

2 回答 2

4

根据@Coussinsky 的评论,您需要\在您的异常前添加一个:

try {
    $result_set = $this->connection->query($sql);
} catch (\Exception $e) {
    return 0;
}
于 2013-03-13T14:35:58.377 回答
3

Doctrines DBAL 层是 PDO 的包装器,因此您应该能够:

try {
    // Query your non-existent table
} catch (\PDOException $e) {
    // Deal with it without killing your app
}

http://symfony.com/doc/current/cookbook/doctrine/dbal.html

于 2013-03-13T11:15:21.043 回答