PDO::errorInfo
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::errorInfo — データベースハンドラにおける直近の操作に関連する拡張エラー情報を取得する
説明
public PDO::errorInfo ( ) : array
返り値
PDO::errorInfo() は、 このデータベースハンドラによって実行された直近の操作に関するエラー情報を 配列として返します。この配列は少なくとも次のフィールドを含みます。
要素 | 情報 |
---|---|
0 | SQLSTATE エラーコード
(これは、ANSI SQL 標準で定義された英数 5 文字の ID) |
1 | ドライバ固有のエラーコード |
2 | ドライバ固有のエラーメッセージ |
注意:
SQLSTATE エラーコードが設定されていない場合やドライバ固有のエラーがない場合は、 要素 0 に続く要素は
null
となります。
PDO::errorInfo() はデータベースハンドラに 直接行った操作に対するエラーコードのみを取得します。 もし PDO::prepare() や PDO::query() を通して PDOStatement オブジェクトを生成し、 文でエラーが発生した場合、PDO::errorInfo() はそのエラーを反映しません。 特定の文ハンドラに対して実行された操作についてのエラーコードを返すには PDOStatement::errorInfo() をコールしなければなりません。
例
例1 DB2 データベースに対する PDO_ODBC 接続の errorInfo() フィールドを表示する
<?php/* エラーを発生させる -- 無効な SQL シンタックス */$stmt = $dbh->prepare('bogus sql');if (!$stmt) { echo "\nPDO::errorInfo():\n"; print_r($dbh->errorInfo());}?>
上の例の出力は以下となります。
PDO::errorInfo(): Array ( [0] => HY000 [1] => 1 [2] => near "bogus": syntax error )
参考
- PDO::errorCode() - データベースハンドラにおける直近の操作に関連する SQLSTATE を取得する
- PDOStatement::errorCode() - 文ハンドラにおける直近の操作に関連する SQLSTATE を取得する
- PDOStatement::errorInfo() - 文ハンドラにおける直近の操作に関連する拡張エラー情報を取得する