pg_trace
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
Enable tracing a PostgreSQL connection
Description
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.
Parameters
filenameThe full path and file name of the file in which to write the trace log. Same as in
fopen().modeAn optional file access mode, same as for
fopen().connectionConnection-with-nullable-default
trace_modeAn optional trace mode with the following constants
PGSQL_TRACE_SUPPRESS_TIMESTAMPSandPGSQL_TRACE_REGRESS_MODE
Return Values
Success
Changelog
| Version | Description |
|---|---|
| 8.3.0 | trace_mode has been added. |
| 8.0.0 | connection is now nullable. |
Examples
pg_trace() example
<?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);
// Now /tmp/trace.log will contain backend communication
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>