Ativa o rastreamento de uma conexão PostgreSQL

# 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

function pg_trace(
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` 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().

  Aviso

  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`

### Valor Retornado

Retorna `true` em caso de sucesso ou `false` em caso de falha.

### 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

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;
    }
    ?>

### Veja Também

- fopen() - Abre um arquivo ou URL
- pg_untrace() - Desabilita o rastreamento de uma conexão PostgreSQL

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open