-1

我需要使用静默 PDO 模式,没有任何异常或错误,所以我这样做:

$this->db = new PDO($db_config['dsn'], $db_config['username'], $db_config['password'], 
    array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
        PDO::ATTR_TIMEOUT => 5,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    )
);

但它仍然抛出我无法连接到数据库的异常。

4

2 回答 2

5

我需要使用静音 PDO 模式

不,你没有。

你问这个问题是出于一些错误的假设。您不必进一步遵循它,而是必须重新考虑您的前提,将 PDO 设置为异常模式,然后修复其他问题。最有可能 - 一个错误处理程序。

于 2013-10-09T13:18:39.043 回答
0

如果无法连接到数据库,PHP 就无法创建 PDO 对象。您不能拥有未连接到数据库的 PDO 对象。使用运算符时,您只能返回有效的对象实例new。因此,异常是 PDO 构造函数在这里失败的唯一原因。

换句话说,您不能在构造时使发生的异常静音,该设置仅适用于 PDO 可能产生的所有以后的错误。你只需要catch它。

于 2013-10-09T13:00:37.413 回答