PDO数据库类——对query()和exec()的异常监听
PDO异常类中,query()和exec()方法中执行失败时,默认情况下,我们是无法知道,具体执行失败的原因。
那如果我们想要监听异常的话,肿么整呢?
只要使用setAttribute()方法,即可监听到异常信息
使用形式为:
$对象名->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
使用案例:
1 try { 2 $dsn = 'mysql:dbname=page;host=localhost;port=3306'; 3 $username = 'root'; 4 $password = 'root'; 5 6 $DB = new PDO($dsn, $username, $password); 7 # 设置编码 8 $DB->query('SET NAMES utf-8'); 9 # 监听exec()和query()异常信息 10 # 注意:该代码不能放在‘设置编码’之前 11 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 self::$_PDO = $DB; 13 14 } catch(PDOException $e) { 15 die('连接失败,错误信息:' .$e->getMessage()); 16 }
可以看到,对query()和exec()方法的异常监听是放在连接数据库之后(第11行)
注意:
1、如果在连接数据库之后,有使用到‘设置编码’(第8行)的话,必须要把setAttribute()写在‘设置编码’之后,否则会报错
2、setAttribute()必须搭配try+catch异常一起使用!!!!
以上
END