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