(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
pg_trace — 启用跟踪 PostgreSQL 连接
$filename
,$mode
= "w",$connection
= null
,$trace_mode
= 0pg_trace() 启用将 PostgreSQL 前端/后端通信跟踪到文件的跟踪。为了完全理解结果,需要熟悉 PostgreSQL 通信协议的内部机制。
对于那些不熟悉的人来说,它仍然可以用于跟踪发送到服务器的查询中的错误,例如,你可以执行 grep '^To backend' trace.log 并查看实际发送到 PostgreSQL 服务器的查询。有关更多信息,请参阅 » 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
版本 | 描述 |
---|---|
8.3.0 |
添加了 trace_mode 。 |
8.1.0 | connection 参数现在需要一个 PgSql\Connection 实例;以前需要一个 资源。 |
8.0.0 |
connection 现在可以为空。 |
示例 #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;
}
?>