可以提供更多文档,包括一个小型(但可用的)示例脚本,说明如何使用它吗?
一些问题(我在几十个教程中都看到了“相同”的代码示例):-
(我将使用大写字母仅用于强调)
问题:D:T:O 是什么意思?未解释。
问题:我们是否*只*在一个独立的脚本中使用这 3 行?这会记录所有未来的 MYSQL 命令吗?
问题:- 我们是否将那一行放在
- 我们连接到 MYSQL 后立即?
- 我们连接到 MYSQL 之前?
- 我们怀疑的错误之前?
(PHP 5, PHP 7, PHP 8)
mysqli::debug -- mysqli_debug — 执行调试操作
面向对象风格
过程式风格
使用 Fred Fish 调试库执行调试操作。
options
表示要执行的调试操作的字符串
调试控制字符串是以下冒号分隔字段的序列:
<field_1>:<field_2>:<field_N>
,
和逗号分隔的修饰符列表组成:flag[,modifier,modifier,...,modifier]
options 字符 |
说明 |
---|---|
O | MYSQLND_DEBUG_FLUSH |
A/a | MYSQLND_DEBUG_APPEND |
F | MYSQLND_DEBUG_DUMP_FILE |
i | MYSQLND_DEBUG_DUMP_PID |
L | MYSQLND_DEBUG_DUMP_LINE |
m | MYSQLND_DEBUG_TRACE_MEMORY_CALLS |
n | MYSQLND_DEBUG_DUMP_LEVEL |
o | 输出到文件 |
T | MYSQLND_DEBUG_DUMP_TIME |
t | MYSQLND_DEBUG_DUMP_TRACE |
x | MYSQLND_DEBUG_PROFILE_CALLS |
始终返回 true
。
示例 #1 生成跟踪文件
<?php
/* 在本地(客户端)机器上的 '/tmp/client.trace' 中创建一个跟踪文件: */
mysqli_debug("d:t:o,/tmp/client.trace");
?>
注意:
要使用 mysqli_debug() 函数,您必须编译 MySQL 客户端库以支持调试。
可以提供更多文档,包括一个小型(但可用的)示例脚本,说明如何使用它吗?
一些问题(我在几十个教程中都看到了“相同”的代码示例):-
(我将使用大写字母仅用于强调)
问题:D:T:O 是什么意思?未解释。
问题:我们是否*只*在一个独立的脚本中使用这 3 行?这会记录所有未来的 MYSQL 命令吗?
问题:- 我们是否将那一行放在
- 我们连接到 MYSQL 后立即?
- 我们连接到 MYSQL 之前?
- 我们怀疑的错误之前?
以下是关于 mysqli_debug() 上的调试选项的信息
O,o:MYSQLND_DEBUG_FLUSH
A,a:MYSQLND_DEBUG_APPEND
F:MYSQLND_DEBUG_DUMP_FILE
L:MYSQLND_DEBUG_DUMP_LINE
m:MYSQLND_DEBUG_TRACE_MEMORY_CALLS
n:MYSQLND_DEBUG_DUMP_LEVEL
o:输出到文件
T:MYSQLND_DEBUG_DUMP_TIME
t:MYSQLND_DEBUG_DUMP_TRACE
x:MYSQLND_DEBUG_PROFILE_CALLS
f:? 仍在调查
例如,mysqli_debug("T:n:t:m:x:F:L:o,/tmp/client.trace");
mysqlnd 将写入时间、级别、跟踪、内存调用、概要调用、文件、行到 client.trace 文件中。
22:35:42.704501 ../mysqlnd_connection.c: 269 0:>mysqlnd_connection_init
22:35:42.704538 ../mysqlnd_driver.c: 10 1:| >mysqlnd_driver::get_connection
22:35:42.704549 ../mysqlnd_driver.c: 10 2:| | info : persistent=1
22:35:42.704558 ../mysqlnd_alloc.c: 21 2:| | >_mysqlnd_pecalloc
22:35:42.704570 ../mysqlnd_alloc.c: 23 2:| | <_mysqlnd_pecalloc (total=3 own=3 in_calls=0)
22:35:42.704602 ../mysqlnd_alloc.c: 21 2:| | >_mysqlnd_pecalloc
22:35:42.704626 ../mysqlnd_alloc.c: 23 2:| | <_mysqlnd_pecalloc (total=2 own=2 in_calls=0)
22:35:42.704650 ../mysqlnd_connection.c: 15 2:| | >mysqlnd_error_info_init
22:35:42.704675 ../mysqlnd_connection.c: 10 3:| | | >mysqlnd_error_info::reset
22:35:42.704697 ../mysqlnd_connection.c: 10 3:| | | <mysqlnd_error_info::reset (total=1 own=1 in_calls=0)
22:35:42.704725 ../mysqlnd_connection.c: 16 2:| | <mysqlnd_error_info_init (total=51 own=50 in_calls=1)
22:35:42.704744 ../mysqlnd_connection.c: 21 2:| | >mysqlnd_connection_state_init
如果有任何问题,请告诉我。