ConFoo 2025

pg_result_error_field

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

pg_result_error_fieldLiefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung

Beschreibung

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

pg_result_error_field() gibt ein Feld der ausführlichen Fehlerbeschreibung zurück, die mit der result-Instanz verbunden ist. Die Funktion wird nur für Verbindungen zu PostgreSQL ab der Version 7.4 unterstützt. Das gewünschte Feld wird im Parameter field_code übergeben.

Da pg_query() und pg_query_params() false zurückgeben, wenn eine Abfrage fehlschlägt, müssen Sie pg_send_query() und pg_get_result() benutzen, um eine Ergebniskennung zu erhalten.

Falls Sie weitergehende Informationen über einen aufgetretenen Fehler bei pg_query() brauchen, können Sie pg_set_error_verbosity() oder pg_last_error() aufrufen und deren Ergebnisse analysieren.

Parameter-Liste

result

Eine PgSql\Result-Instanz, die von pg_query(), pg_query_params() oder pg_execute() (unter anderen) zurückgegeben wurde.

field_code

Mögliche Werte von field_code sind: 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 (nur PostgreSQL ab Version 8.0), PGSQL_DIAG_INTERNAL_QUERY (nur PostgreSQL ab Version 8.0), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE und PGSQL_DIAG_SOURCE_FUNCTION.

Rückgabewerte

Ein string, der den Inhalt des Fehlerfeldes enthält, oder null, falls das Feld nicht existiert. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.1.0 Der Parameter result erwartet nun eine PgSql\Result-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 pg_result_error_field()-Beispiel

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Konnte nicht verbinden.");

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

Siehe auch

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