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

posted @ 2018-08-30 13:59  佳佳嘉佳佳  阅读(577)  评论(0编辑  收藏  举报