PDO错误事件?

时间:2018-07-03 08:24:44

标签: php pdo error-handling

我正在像这样扩展PDO类:

class db extends PDO {
    function __construct() {
        $params = [
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES => true
        ];

        try {
            parent::__construct('mysql:host=' . $dbHost . ';dbname=' . $dbName, $dbUsername, $dbPassword, $params);

        } catch (PDOException $e) {
            //error handling 
        }
    }
};

然后我将其用于:

$db = new db();
try {
    $stmt = $db->query(...);        
} catch (Exception $e) {
    //again error handling
}        
$data = $stmt->fetchAll();

这行得通,但是在应用程序的许多地方使用try / catch很无聊。有什么方法可以将错误处理事件放入数据库对象,所以我可以简单地使用:

$db = new db();
$stmt = $db->query(...);        
$data = $stmt->fetchAll();

目前,objech只保留连接的错误处理,如何使ih捕获所有错误?

注意:由于项目是rest service,因此所有调用的错误处理都是相同的(回显消息,写到php日志,500,死),所以没有必要不在一个地方。

0 个答案:

没有答案