(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_result_error_field — Возвращает конкретное поле из отчёта об ошибках
pg_result_error_field() возвращает одно из полей
отчёта об ошибках, связанного с экземпляром result.
Нужное поле задаётся аргументом field_code.
Функции pg_query() и pg_query_params()
в случае ошибок возвращают false вместо ресурса. Чтобы иметь
возможность обрабатывать ошибки, пользуйтесь функциями
pg_send_query() и pg_get_result() .
Для получения дополнительной информации о ходе выполнения отказавшей функции pg_query() используйте функции pg_set_error_verbosity() и pg_last_error() и обрабатывайте результат их выполнения.
resultfield_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 ,
PGSQL_DIAG_INTERNAL_QUERY ,
PGSQL_DIAG_CONTEXT ,
PGSQL_DIAG_SOURCE_FILE ,
PGSQL_DIAG_SOURCE_LINE ,
PGSQL_DIAG_SOURCE_FUNCTION .
Сообщение об ошибке из заданного поля в виде строки (string ); null , если
заданное поле не существует; false в случае возникновения ошибки.
| Версия | Описание |
|---|---|
| 8.1.0 |
Параметр result теперь принимает объект
PgSql\Result ; раньше параметр принимал тип resource .
|
Пример #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);
?>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