PHP Conference Japan 2024

pg_trace

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

pg_trace啟用追蹤 PostgreSQL 連線

說明

pg_trace(
    字串 $filename,
    字串 $mode = "w",
    ?PgSql\Connection $connection = null,
    整數 $trace_mode = 0
): 布林值

pg_trace() 可啟用 PostgreSQL 前端/後端通訊的追蹤,並將追蹤記錄寫入檔案。要完全理解追蹤結果,需要熟悉 PostgreSQL 通訊協定的內部運作。

即使不熟悉 PostgreSQL 通訊協定,它仍然可以用於追蹤發送到伺服器的查詢錯誤,例如,您可以執行 grep '^To backend' trace.log 來查看實際發送到 PostgreSQL 伺服器的查詢。更多資訊,請參考 » PostgreSQL 文件

參數

filename

要寫入追蹤記錄的檔案的完整路徑和檔名。與 fopen() 中的用法相同。

mode

可選的檔案存取模式,與 fopen() 中的用法相同。

connection

一個 PgSql\Connection 實例。當 connectionnull 時,將使用預設連線。預設連線是最後一次由 pg_connect()pg_pconnect() 建立的連線。

警告

自 PHP 8.1.0 起,不建議使用預設連線。

trace_mode

可選的追蹤模式,具有以下常數:PGSQL_TRACE_SUPPRESS_TIMESTAMPSPGSQL_TRACE_REGRESS_MODE

返回值

成功時返回 true,失敗時返回 false

更新日誌

版本 說明
8.3.0 新增了 trace_mode 參數。
8.1.0 connection 參數現在需要一個 PgSql\Connection 實例;先前需要一個 資源
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;
}
?>

參見

新增筆記

使用者提供的筆記

此頁面沒有使用者提供的筆記。
To Top