protected $params = [
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
];
默认的数据库句柄参数将 ATTR_ERRMODE 设为 ERRMODE_EXCEPTION,这个设置将会使 PDO 以 PDOException 抛出数据库的错误信息,但是我发现数据库锁等待超时(deadlock)的时候不会引起 PDOException。
实验后发现 将 ATTR_EMULATE_PREPARES 设为 true 能解决这个问题,请问将 ATTR_EMULATE_PREPARES 设为 true 会有其它副作用吗?
最佳答案