pg_trace
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
pg_trace — Ativa o rastreamento de uma conexão PostgreSQL
Descrição
string
$filename
,string
$mode
= "w",?PgSql\Connection
$connection
= null
,int
$trace_mode
= 0): bool
pg_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.
Parâmetros
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
fornull
, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().WarningA 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
ePGSQL_TRACE_REGRESS_MODE
Registro de Alterações
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.
|
Exemplos
Example #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;
}
?>
Veja Também
- fopen() - Abre um arquivo ou URL
- pg_untrace() - Desabilita o rastreamento de uma conexão PostgreSQL