PHPCon Poland 2024

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_traceErmöglicht die Ablaufverfolgung einer Verbindung

Beschreibung

pg_trace(
    string $filename,
    string $mode = "w",
    ?PgSql\Connection $connection = null,
    int $trace_mode = 0
): bool

pg_trace() ermöglicht die Protokollierung der frontend/backend Kommunikation in eine Datei, die durch den Pfadnamen pathname bestimmt wurde. Um die Ergebnisse ganz zu verstehen, sollte man sich mit den Interna des PostgreSQL-Kommunikationsprotokolls auskennen.

Für diejenigen, die sich damit nicht auskennen kann es trotzdem hilfreich sein, um Fehler in Abfragen zu finden, die an den Server gesendet wurden. Beispielsweise können Sie das Kommando grep '^To backend' trace.log eingeben und schauen, welche Abfrage gerade an den PostgreSQL Server geschickt wurde. Weitere Informationen finden Sie in der » PostgreSQL Documentation.

Parameter-Liste

filename

Der vollständige Pfad- und Dateiname der Datei, in die das Ablauf-Protokoll geschrieben werden soll. Genau wie bei fopen().

mode

Optional kann ein Zugriffsmodus übergeben werden, genauso wie bei fopen().

connection

Eine PgSql\Connection-Instanz. Falls connection null ist, wird die Standardverbindung benutzt. Das ist die zuletzt mit pg_connect() oder pg_pconnect() aufgebaute Verbindung.

Warnung

Seit PHP 8.1.0 ist die Verwendung der Standardverbindung veraltet.

trace_mode

Ein optionaler Modus für die Ablaufverfolgung mit den Konstanten PGSQL_TRACE_SUPPRESS_TIMESTAMPS und PGSQL_TRACE_REGRESS_MODE

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.3.0 trace_mode wurde hinzugefügt.
8.1.0 Der Parameter connection erwartet nun eine PgSql\Connection-Instanz; vorher wurde eine Ressource erwartet.
8.0.0 connection ist jetzt nullbar.

Beispiele

Beispiel #1 pg_trace()-Beispiel

<?php
$pgsql_conn
= pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
pg_query("SELECT 1");
pg_untrace($pgsql_conn);
// Jetzt enthält /tmp/trace.log die Kommunikation mit dem Server
} else {
print
pg_last_error($pgsql_conn);
exit;
}
?>

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • pg_untrace() - Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top