oci_error

(PHP 5)

oci_error -- 最後に見つかったエラーを返す

説明

array oci_error ( [resource source] )

ほとんどのエラーに対応するため、 パラメータは適当なリソースハンドルを指定可能です。 oci_connect()oci_new_connect() あるいは oci_pconnect() での接続エラーの場合、 パラメータを渡しません。 もしエラーが見つからない場合、oci_error()FALSE を返します。 oci_error() はエラーを連想配列として返します。 この配列には、Oracle エラーコード code や Oracle エラー文字列 message が含まれます。

PHP 4.3 以降: エラーの場所と原因となった SQL テキストを示すため、 offsetsqltext も返される配列に含まれます。

例 1. 接続エラー後、Oracle エラーメッセージを表示する

$conn = @oci_connect("scott", "tiger", "mydb");
if (!$conn) {
  $e = oci_error();   // oci_connect のエラーの場合、ハンドルを渡さない
  echo htmlentities($e['message']);
}

例 2. パースエラー後、Oracle エラーメッセージを表示する

$stmt = @oci_parse($conn, "select ' from dual");  // クオートが間違っている
if (!$stmt) {
  $e = oci_error($conn);  // oci_parse errors のエラーの場合、接続ハンドルを渡す
  echo htmlentities($e['message']);
}

例 3. 実行エラー後、 Oracle エラーメッセージと問題となった文を表示する

$r = oci_execute($stmt);
if (!$r) {
  $e = oci_error($stmt); // oci_execute のエラーの場合、ステートメントハンドルを渡す
  echo htmlentities($e['message']);
  echo "<pre>";
  echo htmlentities($e['sqltext']);
  printf("\n%".($e['offset']+1)."s", "^");
  echo "</pre>";
}

注意: PHP バージョン 5.0.0 以前では、代わりに ocierror() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_error() への別名として残されていますが、 推奨されません。