pg_result_error_field
エラー報告の各フィールドを返す
説明
stringfalsenull pg_result_error_field(PgSql\Result $result
, int $field_code
)
pg_query や pg_query_params
はクエリが失敗した場合に false
を返すので、結果のハンドルを得るには
pg_send_query および
pg_get_result を使用する必要があります。
失敗した pg_query クエリから詳細なエラー情報を
取得する必要がある場合は、pg_set_error_verbosity
および pg_last_error を使用してその結果をパース
します。
パラメータ
-
result
-
pg_query、pg_query_params や (様々な関数がありますが、特に) pg_execute が返した PgSql\Result クラスのインスタンス。
-
field_code
-
以下の field_code
が使用可能です。 PGSQL_DIAG_SEVERITY
、
PGSQL_DIAG_SQLSTATE
、PGSQL_DIAG_MESSAGE_PRIMARY
、
PGSQL_DIAG_MESSAGE_DETAIL
、
PGSQL_DIAG_MESSAGE_HINT
、PGSQL_DIAG_STATEMENT_POSITION
、
PGSQL_DIAG_INTERNAL_POSITION
(PostgreSQL 8.0+ のみ)、
PGSQL_DIAG_INTERNAL_QUERY
(PostgreSQL 8.0+ のみ)、
PGSQL_DIAG_CONTEXT
、PGSQL_DIAG_SOURCE_FILE
、
PGSQL_DIAG_SOURCE_LINE
あるいは
PGSQL_DIAG_SOURCE_FUNCTION
。
戻り値
エラーフィールドの内容を文字列で返します。
フィールドが存在しない場合に null
、失敗した場合に false
を返します。
例
例1 pg_result_error_field の例
<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");
if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}
$res1 = pg_get_result($dbconn);
echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>