在PHP中自动捕获PDO的异常

时间:2012-05-19 21:36:25

标签: php mysql pdo

晚上,

我目前正在处理这样的PDO异常:

try{
$db = Db::connect();
$query = $db->prepare( "SELECT * FROM table;" );
$query->execute();
}
catch( PDOException $e ) { error( 'MySQL error: ' . $e->getMessage(), __FILE__, __LINE__ ); }

我每次的处理都完全一样。所以我想知道是否有一种方法可以设置当有自动运行的PDO异常时:

catch( PDOException $e ) { error( 'MySQL error: ' . $e->getMessage(), __FILE__, __LINE__ ); }

2 个答案:

答案 0 :(得分:4)

查看Documentation of PDO

您可以将错误处理更改为 PDO :: ERRMODE_SILENT PDO :: ERRMODE_WARNING

$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

或者使用set_exception_handler并为所有例外定义处理程序。

答案 1 :(得分:0)

尝试编辑类本身以捕获它。