19.6 PDO中错误处理
在PDO中有两个获取程序中错误信息的方法:errorCode方法和errorInfo方法。
19.6.1 errorCode方法
errorCode方法用于获取在操作数据库句柄时所发生的错误代码,这些错误代码被称为SQLSTATE代码。其语法格式如下:
int PDOStatement::errorCode ( void )
errorCode方法返回一个SQLSTATE, SQLSTATE是由5个数字和字母组成的代码。
在PDO中通过query方法完成数据的查询操作,并且通过foreach语句完成数据的循环输出。在定义SQL语句时使用一个错误的数据表,并且通过errorCode方法返回错误代码。
【例19.7】创建index.php文件。首先,通过PDO连接mysql数据库。然后,通过query方法执行查询语句。接着,通过errorCode方法获取错误代码。最后,通过foreach语句完成数据的循环输出。其关键代码如下:(实例位置:光盘TMsl197)
<?php $dbms='mysql'; //数据库类型,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数 $host='localhost'; //数据库主机名 $dbName='db_database19'; //使用的数据库 $user='root'; //数据库连接用户名 $pass='111'; //对应的密码 $dsn="$dbms:host=$host; dbname=$dbName"; try { $pdo=new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select*from tb_pdo_mysqls"; //定义SQL语句 $result=$pdo->query($query); //执行查询语句,并返回结果集 echo "errorCode为:".$pdo->errorCode(); foreach($result as $items){ ?> <tr> <td height="22" align="center" valign="middle"><?php echo $items['id']; ?></td> <td align="center" valign="middle"><?php echo $items['pdo_type']; ?></td> <td align="center" valign="middle"><?php echo $items['database_name']; ?></td> <td align="center" valign="middle"><?php echo $items['dates']; ?></td> </tr> <?php } } catch (PDOException $e) { die ("Error! : " . $e->getMessage() . "<br/>"); } ?>
运行结果如图19.9所示。
图19.9 通过errorCode方法获取错误代码
19.6.2 errorInfo方法
errorInfo方法用于获取操作数据库句柄时所发生的错误信息。其语法格式如下:
array PDOStatement::errorInfo ( void )
errorInfo方法的返回值为一个数组,它包含了相关的错误信息。
【例19.8】在PDO中通过query方法完成数据的查询操作,并且通过foreach语句完成数据的循环输出。在定义SQL语句时使用一个错误的数据表,并且通过errorInfo方法返回错误信息。(实例位置:光盘TMsl198)
创建index.php文件。首先,通过PDO连接MySQL数据库。然后,通过query方法执行查询语句。接着,通过errorInfo方法获取错误信息。最后,通过foreach语句完成数据的循环输出。其关键代码如下:
<?php $dbms='mysql'; //数据库类型,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数 $host='localhost'; //数据库主机名 $dbName='db_database19'; //使用的数据库 $user='root'; //数据库连接用户名 $pass='111'; //对应的密码 $dsn="$dbms:host=$host; dbname=$dbName"; try { $pdo=new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select*from tb_pdo_mysqls"; //定义SQL语句 $result=$pdo->query($query); //执行查询语句,并返回结果集 print_r($pdo->errorInfo()); foreach($result as $items){ ?> <tr> <td height="22" align="center" valign="middle"><?php echo $items['id']; ?></td> <td align="center" valign="middle"><?php echo $items['pdo_type']; ?></td> <td align="center" valign="middle"><?php echo $items['database_name']; ?></td> <td align="center" valign="middle"><?php echo $items['dates']; ?></td> </tr> <?php } } catch (PDOException $e) { die ("Error! : " . $e->getMessage() . "<br/>"); } ?>
运行结果如图19.10所示。
图19.10 通过errorInfo获取错误信息
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。