-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathpg-trace.xml
executable file
·160 lines (153 loc) · 4.57 KB
/
pg-trace.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 3f2e2d4a8c98368d8cd5dcf73d4728dfb4517f6d Maintainer: dallas Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<!-- splitted from ./en/functions/pgsql.xml, last change in rev 1.7 -->
<refentry xml:id="function.pg-trace" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>pg_trace</refname>
<refpurpose>启用 PostgreSQL 连接的追踪</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>pg_trace</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>mode</parameter><initializer>"w"</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>PgSql\Connection</type><type>null</type></type><parameter>connection</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>trace_mode</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
<function>pg_trace</function> 启用 PostgreSQL 前后端通讯的追踪并记录到文件。要完全理解结果,需要熟悉 PostgreSQL 通讯协议的内部工作原理。
</para>
<para>
对不熟悉的人来说,追踪发送到服务器的查询错误依然有用,例如可以用 <command>grep '^To backend' trace.log</command> 来查看实际发送到 PostgreSQL
服务器的查询。更多信息参考 <link xlink:href="&url.pgsql.manual;">PostgreSQL 手册</link>。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
写入追踪日志的文件完整路径和文件名,与 <function>fopen</function> 一致。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
可选的文件访问模式,同 <function>fopen</function>。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>connection</parameter></term>
<listitem>
&pgsql.parameter.connection-with-nullable-default;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>trace_mode</parameter></term>
<listitem>
<para>
可选的 trace 模式,使用下列常量 <constant>PGSQL_TRACE_SUPPRESS_TIMESTAMPS</constant> 和
<constant>PGSQL_TRACE_REGRESS_MODE</constant>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
新增 <parameter>trace_mode</parameter>。
</entry>
</row>
&pgsql.changelog.connection-object;
<row>
<entry>8.0.0</entry>
<entry>
<parameter>connection</parameter> 现在可为 null。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>pg_trace</function> 示例</title>
<programlisting role="php">
<![CDATA[
<?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);
// Now /tmp/trace.log will contain backend communication
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>fopen</function></member>
<member><function>pg_untrace</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->