PHP Conference Japan 2024

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(),然后解析结果。

返回值

包含错误字段内容的 string,如果字段不存在则返回 null,如果失败则返回 false

更新日志

版本 描述
8.1.0 result 参数现在需要一个 PgSql\Result 实例;之前需要一个资源

示例

示例 #1 pg_result_error_field() 示例

<?php
$dbconn
= pg_connect("dbname=publisher") or die("连接失败");

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);
?>

参见

添加注释

用户贡献的注释 1 条注释

up
0
dev at gwouite dot fr
1 年前
来自 libpq 文档的完整字段代码列表...

注意:它们以 "PG_" 为前缀,只需更改为 "PGSQL_",它们将作为定义的 PHP 值可用。

对我来说,最重要的字段标有星号 ;)

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

源和字段代码详细信息:https://postgresql.ac.cn/docs/current/libpq-exec.html
To Top