Web aym.pekori.to

PDO::errorInfo

(no version information, might be only in CVS)

PDO::errorInfo --  データベースハンドラにおける直近の操作に関連する拡張エラー情報を取得する

説明

array PDO::errorInfo ( void )

返り値

PDO::errorInfo() は、 このデータベースハンドラによって実行された直近の操作に関するエラー情報を 配列として返します。この配列は次のフィールドを含みます。

要素情報
0SQLSTATE エラーコード (これは、ANSI SQL 標準で定義された英数 5 文字の ID)
1ドライバ固有のエラーコード
2ドライバ固有のエラーメッセージ

PDO::errorInfo() はデータベースハンドラに 直接行った操作に対するエラーコードのみを取得します。 もし PDO::prepare()PDO::query() を通して PDOStatement オブジェクトを生成し、 文でエラーが発生した場合、PDO::errorInfo() はそのエラーを反映しません。 特定の文ハンドラに対して実行された操作についてのエラーコードを返すには PDOStatement::errorInfo() をコールしなければなりません。

例 1. DB2 データベースに対する PDO_ODBC 接続の errorInfo() フィールドを表示する

<?php
/* エラーを発生させる -- BONES テーブルは存在しない */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();
echo
"\nPDO::errorInfo():\n";
print_r($err->errorInfo());
?>

上の例の出力は以下となります。

PDO::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

参考

PDO::errorCode()
PDOStatement::errorCode()
PDOStatement::errorInfo()