PHP:PDO的自定义错误处理程序?

Joh*_*ohn 6 php error-handling pdo exception-handling

我试图尝试用PDO异常做一些有用的事情而不是显示它们,但我找不到我的生活如何使用错误处理程序(set_error_handler)或任何自定义来处理PDO异常.

我现在用的try.. catch当然块捕获异常,我实现在一个自定义的错误处理程序catch的一部分,或者我可以完全跳过试戴> catch块作为例外处理程序将处理它,我(通过调用or throw new exception (...)上声明?

我想我要问的是一个示例来捕获PDO异常并记录它们或多或少(任何简单的代码是否正确我可以使用,我不是太愚蠢).

mar*_*rio 10

您必须在每个PDO查询周围使用try..catch块.在catch部分添加日志功能.PHP中没有异常的通用处理程序.

try {  
   pdo::error();  
}  
catch (Exception $e) {  
   syslog($e);  
}  
Run Code Online (Sandbox Code Playgroud)

如果要避免使用try..catch块,则可以将PDO配置为仅显示错误而不是抛出异常.http://php.net/manual/en/pdo.error-handling.php

 $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
Run Code Online (Sandbox Code Playgroud)