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