(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
pg_trace — Включает трассировку подключения PostgreSQL
$filename
,$mode
= "w",$connection
= null
,$trace_mode
= 0pg_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;
}
?>