PDO中错误处理:errorCode方法和errorInfo方法

时间:2019-01-11
本文章向大家介绍PDO中错误处理:errorCode方法和errorInfo方法,主要包括PDO中错误处理:errorCode方法和errorInfo方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在PDO中,有两个获取程序中错误信息的方法:errorCode方法和errorInfo方法。
1、errorCode方法
errorCode方法用于获取在操作数据库句柄时所发生的错误代码,这个错误代码被称为SQLSTATE代码,语法为:

int PDOStatement::errorCode(void)

errorCode 方法返回一个错误代码,也就是“SQLSTATE”,SQLSTATE 是由5个数字和字母组成的代码。
在PDO中通过query方法完成数据的查询操作,并且通过foreach 语句完成数据的循环输出。在定义SQL 语句时使用一个错误的数据表,并且通过errorCode方法返回错误代码。

<?php
	$dbms = 'mysql';
	$dbname = 'db_study';
	$host = '127.0.0.1';
	$user = 'root';
	$pwd = '123456';
	$dsn = "$dbms:host=$host;dbname=$dbname";
	try{
		$pdo = new PDO($dsn,$user,$pwd);
		$query = "select * from tb_study";
		$result = $pdo->query($query);
		echo "errorCode 为:".$pdo->errorCode();
		foreach($result as $items){
		?>
			<tr>
				<td height="20" 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/>");
	}
?>

2、errorInfo方法
errorInfo方法用于获取操作数据库句柄时所发生的错误信息,语法如下:

array PDOStatement::errorInfo(void)

errorInfo方法的返回值为一个数组,它包含了相关的错误信息。
在PDO中通过query方法完成数据的查询操作,并且通过foreach语句完成数据的循环输出,最后通过errorInfo方法返回错误信息。

<?php
	$dbms = 'mysql';
	$dbname = 'db_study';
	$host = '127.0.0.1';
	$user = 'root';
	$pwd = '123456';
	$dsn = "$dbms:host=$host;dbname=$dbname";
	try{
		$pdo = new PDO($dsn,$user,$pwd);
		$query = "select * from tb_study";
		$result = $pdo->query($query);
		print_r($pdo->errorInfo());
		foreach($result as $items){
		?>
			<tr>
				<td height="20" 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/>");
	}
?>