PHPにおけるPDOのエラー処理


対象に向けて、まず接続エラーなどの処理を見てください。PHPにおけるPDOのエラー処理は、対象に向けた方式で処理します。
 
<?php
try {
 $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
 $db = null;
} catch (PDOException $e) {
 print "Error: " . $e->getMessage() . "<br/>";
 die();
}
?>
ここでは、私たちPHP 5の対象に向けた異常処理特徴を利用して、異常があればPDOExcetion ptを初期化して、異常クラスを初期化します。PDOException異常類の属性構造:
 
<?php
class PDOException extends Exception
{
 public $errorInfo = null; // , PDO::errorInfo() PDOStatement::errorInfo()
 protected $message; // , Exception::getMessage()
 protected $code; // SQL , Exception::getCode()
}
?>
この異常処理類はPHP 5内蔵の異常処理類を集積しています。PHP 5内蔵の異常処理類構造を簡単に見てみます。プロセス指向の方法を使用して、コードを先に見ます。
 
<?php
class Exception
{
 //
 protected $message = 'Unknown exception'; //
 protected $code = 0; //
 protected $file; //
 protected $line; //
 //
 final function getMessage(); //
 final function getCode(); //
 final function getFile(); //
 final function getLine(); //
 final function getTrace(); // backtrace()
 final function getTraceAsString(); // getTrace()
}
?>
PDOとPDOSTTementオブジェクトはerrorCode()とerrorInfo()の方法があります。もし何か間違いがなければ、errorCode()は00000を返します。そうでなければ、いくつかのエラーコードを返します。errorInfo()はPHP定義のエラーコードとMySQLのエラーコードとエラー情報を含む配列を返します。配列構造は以下の通りです。Aray([0]=>4222[1]=>1054[2]=>Uniknown column'aa'in'field list'はクエリーを実行するたびに、errorCode(最新の結果を表示しやすくなります。PDOを使ってそのPHPとデータベースの開発を行っていますが、もしまた間違えたらどうすればいいですか?上のように処理しましょう。11.3.4 PDOのエラー処理PDOは、2つのプログラムにおけるエラー情報を取得する方法を提供し、一つはerrorCode()方法である。もう一つはerrorInfo()法です。1.errorCode()メソッドerrorCode()は、データベースのハンドルを操作する際に発生したエラーコードを取得するための方法であり、これらのエラーコードはSQLSTATEコードと呼ばれています。この方法の構文形式は以下の通りです。01 string errorCode(void)errorCode()方法の戻り値はSQLSTATEで、SQLSTEは5つの数字とアルファベットのコードからなります。次に、errorCode()を使用する方法の例を示します。【プログラム11-17】光ディスク\code\11\pdo\errorCode.php
 
<?
$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$rs = $db->query("SELECT aa,bb,cc FROM foo");
if ($db->errorCode() != '00000'){
 print_r($db->errorInfo());
 exit;
}
$arr = $rs->fetchAll();
print_r($arr);
$db = null;
?>
で上述したコードが出力されるエラーコードを図11-13に示します。.errorInfo()メソッドerrorInfo()は、データベースのハンドルを操作する際に発生するエラー情報を取得するために使用されます。この方法のシンタックスフォーマットは、01 array errorInfo(void)errorInfo()メソッドの戻り値は、1つの配列であり、この配列には関連するエラー情報が含まれています。errorInfo()を使用する方法の例コードは、図11-18に示すように、光ディスク\code\11\pdo\errorInfo.php
 
<?php
$dsn = 'mysql:dbname=shop;host=localhost';
$user_name = 'root';
$user_psw = 'root';
$pdo = new PDO($dsn, $user_name, $user_psw);
$pdo->exec("update mytable set age=28 where id=1 ");// mytable
echo "errorCode : ".$pdo->errorCode();
?>
上のコードから出力されるエラー情報である。