PHP 8.4.0 RC4 available for testing

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_result_error_fieldエラー報告の各フィールドを返す

説明

pg_result_error_field(PgSql\Result $result, int $field_code): string|false|null

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_SEVERITYPGSQL_DIAG_SQLSTATEPGSQL_DIAG_MESSAGE_PRIMARYPGSQL_DIAG_MESSAGE_DETAILPGSQL_DIAG_MESSAGE_HINTPGSQL_DIAG_STATEMENT_POSITIONPGSQL_DIAG_INTERNAL_POSITION(PostgreSQL 8.0+ のみ)、 PGSQL_DIAG_INTERNAL_QUERY(PostgreSQL 8.0+ のみ)、 PGSQL_DIAG_CONTEXTPGSQL_DIAG_SOURCE_FILEPGSQL_DIAG_SOURCE_LINE あるいは PGSQL_DIAG_SOURCE_FUNCTION

戻り値

エラーフィールドの内容を文字列で返します。 フィールドが存在しない場合に null 、失敗した場合に false を返します。

変更履歴

バージョン 説明
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);
?>

参考

add a note

User Contributed Notes 1 note

up
0
dev at gwouite dot fr
1 year ago
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
To Top