PHP 8.4.2 Released!

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

Экземпляр класса PgSql\Result, который возвращают функции pg_query(), pg_query_params() или pg_execute() (среди прочего).

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.

Возвращаемые значения

Сообщение об ошибке из заданного поля в виде строки (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);
?>

Смотрите также

  • pg_result_error() - Возвращает сообщение об ошибке, связанное с запросом результата

Добавить

Примечания пользователей 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