CakeFest 2024: The Official CakePHP Conference

pg_trace

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

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

Описание

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top