(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
pg_trace — Ermöglicht die Ablaufverfolgung einer Verbindung
$filename,$mode = "w",$connection = null,$trace_mode = 0
   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.
filenameDer vollständige Pfad- und Dateiname der Datei, in die das Ablauf-Protokoll geschrieben werden soll. Genau wie bei fopen().
modeOptional kann ein Zugriffsmodus übergeben werden, genauso wie bei fopen().
connectionEine PgSql\Connection-Instanz.
Falls connection null ist, wird die Standardverbindung benutzt.
Das ist die zuletzt mit pg_connect() oder pg_pconnect() aufgebaute Verbindung.
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
      
| Version | Beschreibung | 
|---|---|
| 8.3.0 | trace_modewurde hinzugefügt. | 
| 8.1.0 | Der Parameter connectionerwartet nun eine PgSql\Connection-Instanz;
  vorher wurde eine Ressource erwartet. | 
| 8.0.0 | connectionist jetzt nullbar. | 
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;
}
?>
