pg_result_error_field
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_result_error_field — エラー報告の各フィールドを返す
説明
pg_result_error_field() は、
result
インスタンスに関するエラーメッセージの特定のフィールドを返します。
PostgreSQL 7.4 以降のサーバーでのみ有効です。エラーフィールドは
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
。
変更履歴
バージョン | 説明 |
---|---|
8.1.0 |
result は、PgSql\Result
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース を期待していました。
|
例
例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);
?>
User Contributed Notes 1 note
Complete list of field codes from libpq documentation...
Warning : they are prefixed with "PG_", just change to "PGSQL_" and they'll be available as defined PHP values.
For me, most importants fields are suffixed with a star ;)
PG_DIAG_SEVERITY
PG_DIAG_SEVERITY_NONLOCALIZED *
PG_DIAG_SQLSTATE *
PG_DIAG_MESSAGE_PRIMARY
PG_DIAG_MESSAGE_DETAIL
PG_DIAG_MESSAGE_HINT
PG_DIAG_STATEMENT_POSITION
PG_DIAG_INTERNAL_POSITION
PG_DIAG_INTERNAL_QUERY
PG_DIAG_CONTEXT
PG_DIAG_SCHEMA_NAME *
PG_DIAG_TABLE_NAME *
PG_DIAG_COLUMN_NAME *
PG_DIAG_DATATYPE_NAME *
PG_DIAG_CONSTRAINT_NAME
PG_DIAG_SOURCE_FILE
PG_DIAG_SOURCE_LINE
PG_DIAG_SOURCE_FUNCTION
Source and field codes details : https://www.postgresql.org/docs/current/libpq-exec.html