PHP 8.1.15 Released!


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

pg_traceEnable tracing a PostgreSQL connection


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

pg_trace() enables tracing of the PostgreSQL frontend/backend communication to a file. To fully understand the results, one needs to be familiar with the internals of PostgreSQL communication protocol.

For those who are not, it can still be useful for tracing errors in queries sent to the server, you could do for example grep '^To backend' trace.log and see what queries actually were sent to the PostgreSQL server. For more information, refer to the » PostgreSQL Documentation.



The full path and file name of the file in which to write the trace log. Same as in fopen().


An optional file access mode, same as for fopen().


An PgSql\Connection instance. When connection is null, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().


As of PHP 8.1.0, using the default connection is deprecated.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a recurso was expected.
8.0.0 connection is now nullable.


Ejemplo #1 pg_trace() example

= pg_connect("dbname=mark host=localhost");

if (
$pgsql_conn) {
pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
pg_query("SELECT 1");
// Now /tmp/trace.log will contain backend communication
} else {

Ver también

  • fopen() - Abre un fichero o un URL
  • pg_untrace() - Desactivar el rastreo de una conexión de PostgreSQL

add a note

User Contributed Notes

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