(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
pg_trace — Ativa o rastreamento de uma conexão PostgreSQL
$filename,$mode = "w",$connection = null,$trace_mode = 0pg_trace() permite o rastreamento da comunicação frontend/backend do PostgreSQL para um arquivo. Para compreender totalmente os resultados, é necessário estar familiarizado com os componentes internos do protocolo de comunicação PostgreSQL.
Para quem não é, ainda pode ser útil para rastrear erros em consultas enviadas ao servidor, você poderia fazer por exemplo grep '^To backend' trace.log e ver quais consultas realmente foram enviados para o servidor PostgreSQL. Para obter mais informações, consulte a » Documentação do PostgreSQL.
filenameO caminho completo e o nome do arquivo no qual gravar o log de rastreamento. O mesmo que em fopen().
modeUm modo opcional de acesso a arquivos, igual ao fopen().
connectionUma instância de PgSql\Connection.
Quando o parâmetro connection for null, a conexão padrão será usada.
A conexão padrão é a última conexão feita por pg_connect()
ou pg_pconnect().
A partir do PHP 8.1.0, usar a conexão padrão foi descontinuado.
trace_mode
Um modo de rastreamento opcional com as seguintes constantes
PGSQL_TRACE_SUPPRESS_TIMESTAMPS e
PGSQL_TRACE_REGRESS_MODE
| Versão | Descrição |
|---|---|
| 8.3.0 |
trace_mode foi adicionado.
|
| 8.1.0 |
O parâmetro connection agora espera uma instância de PgSql\Connection;
anteriormente, um resource era esperado.
|
| 8.0.0 |
connection agora é anulável.
|
Exemplo #1 Exemplo de pg_trace()
<?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);
// Agora /tmp/trace.log conterá comunicação de backend
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>