Включает трассировку подключения PostgreSQL

# pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_trace — Включает трассировку подключения PostgreSQL

### Описание

function pg_trace(
string `$filename`,
string `$mode` = "w",
?PgSql\Connection `$connection` = `null`,
int `$trace_mode` = 0
): bool

pg_trace() включает трассировку соединения с PostgreSQL сервером во внешний файл. Чтобы понимать содержимое таких файлов, необходимо хорошо разбираться во внутреннем устройстве клиент-серверного взаимодействия.

Для тех, кто не обладает подобными навыками, трассировка всё же может оказаться полезной для поиска ошибок при отправке запросов на сервер. Например, можно выполнить команду grep '^To backend' trace.log и посмотреть, какие запросы реально отправлены на сервер. Дополнительную информацию можно почерпнуть из » документации PostgreSQL.

### Список параметров

`filename`

  Полный путь и имя файла для записи журнала трассировки. Аналогично fopen().

`mode`

  Необязательный аргумент. Режим доступа к файлу. Аналогично fopen().

`connection`

  Экземпляр класса PgSql\Connection. Функция выберет соединение по умолчанию, если для параметра `connection` указали значение `null`. Соединение по умолчанию — последнее соединение, которое установила функция pg_connect() или pg_pconnect().

  Внимание

  Начиная с PHP 8.1.0 выбор функцией соединения по умолчанию устарел.

`trace_mode`

  Необязательный режим трассировки со следующими константами: `PGSQL_TRACE_SUPPRESS_TIMESTAMPS` и `PGSQL_TRACE_REGRESS_MODE`.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Список изменений

Версия | Описание
--- | ---
8.3.0 | Добавлен параметр `trace_mode`.
8.1.0 | Параметр `connection` теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.
8.0.0 | `connection` теперь допускает значение null.

### Примеры

Пример #1 Пример использования 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);
       // Теперь /tmp/trace.log будет хранить информацию о взаимодействии с сервером
    } else {
       print pg_last_error($pgsql_conn);
       exit;
    }
    ?>

### Смотрите также

- fopen() - Открывает файл или URL-адрес
- pg_untrace() - Отключает трассировку соединения с PostgreSQL

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