mysqli::debug

mysqli_debug

(PHP 5, PHP 7, PHP 8)

mysqli::debug -- mysqli_debug执行调试操作

说明

面向对象风格

public mysqli::debug(string $options): true

过程式风格

mysqli_debug(string $options): true

使用 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

变更日志

版本 说明
8.0.0 此函数现在始终返回 true。之前它在失败时返回 false

示例

示例 #1 生成跟踪文件

<?php

/* 在本地(客户端)机器上的 '/tmp/client.trace' 中创建一个跟踪文件: */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

备注

注意:

要使用 mysqli_debug() 函数,您必须编译 MySQL 客户端库以支持调试。

参见

添加一个备注

用户贡献备注 3 备注

28
Peter
10 年前
可以提供更多文档,包括一个小型(但可用的)示例脚本,说明如何使用它吗?

一些问题(我在几十个教程中都看到了“相同”的代码示例):-

(我将使用大写字母仅用于强调)

问题:D:T:O 是什么意思?未解释。

问题:我们是否*只*在一个独立的脚本中使用这 3 行?这会记录所有未来的 MYSQL 命令吗?

问题:- 我们是否将那一行放在

- 我们连接到 MYSQL 后立即?
- 我们连接到 MYSQL 之前?
- 我们怀疑的错误之前?
6
riversnowchang at gmail dot com
6 年前
以下是关于 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

如果有任何问题,请告诉我。
-2
Domenic
6 年前
看起来这个手册可以参考

http://tiebing.blogspot.com.au/2011/10/cc-dbug-library.html

(我还没有测试过)
To Top