PHP 8.6.0 Beta 1 is available for testing

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

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /