(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.
filename
O caminho completo e o nome do arquivo no qual gravar o log de rastreamento. O mesmo que em fopen().
mode
Um modo opcional de acesso a arquivos, igual ao fopen().
connection
Uma 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 tornou-se defasado.
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;
}
?>