PDO 也支持使用面向过程的方式来处理 PDO 错误。PDO 和 PDOStatement 对象有 errorCode() 及 errorInfo() 方法,如果没有任何错误,errorCode() 返回的是:00000 ,否则就会返回错误代码。
对前面的数据库操作加上错误处理的例子:
//表名错误 $sql = "UPDATE user1 SET email='xiaochen@163.com' WHERE username='小陈'"; $count = $db->exec($sql); if ($db->errorCode() != '00000'){ $error = $db->errorInfo(); echo '错误: [',$error['1'],'] ',$error['2']; die(); } echo '更新 ',$count,' 条数据记录!';
运行该例子,浏览器输出:
错误: [1146] Table 'test.user1' doesn't exist
errorInfo() 方法返回的是一个数组,第一个键值为 SQLSTATE 错误代码,第二个键值为数据库具体的错误代码,第三个为错误文本信息。