• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mysqli::debug()

    (PHP 5, PHP 7)

    Performs debugging operations

    说明

    面向对象风格
    mysqli::debug(string $message): bool
    过程化风格
    mysqli_debug(string $message): bool

    Performs debugging operations using the Fred Fish debugging library.

    参数

    $message

    A string representing the debugging operation to perform

    返回值

    Returns TRUE.

    注释

    Note:

    To use the mysqli_debug() function you must compile the MySQL client library to support debugging.

    范例

    Example #1 Generating a Trace File

    <?php
    /* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
    mysqli_debug("d:t:o,/tmp/client.trace");
    ?>
    

    参见

    • mysqli_dump_debug_info() 将调试信息输出到日志
    • mysqli_report()别名 mysqli_driver->report_mode
    can there be more documenation with a small (but working) example script on how to use this ?
    Some issues (Ive seen the "same" code example in dozens of tutorials):-
    ( I'll use capitals for emphasis only)
    QUESTION: what does D:T:O mean ? UNEXPLAINED.
    QUESTION: Do we *ONLY* use these 3 lines in a self-contained script ? Does this log ALL future MYSQL commands ?
    QUESTION :- Do we put that one line just
    - immediately after we connect to MYSQL ?
    - before we connect to MYSQL ?
    - before our suspected error ?
    Here are the information about debug options on 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:output to file
    T:MYSQLND_DEBUG_DUMP_TIME
    t:MYSQLND_DEBUG_DUMP_TRACE
    x:MYSQLND_DEBUG_PROFILE_CALLS
    f:? still investigating
    For example, mysqli_debug("T:n:t:m:x:F:L:o,/tmp/client.trace");
    mysqlnd will write Time, Level, trace, memory calls, profile calls, File, Line to client.trace file.
    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
    If there is anything wrong, please let me know.
    Looks like this manual could be referred to:
    http://tiebing.blogspot.com.au/2011/10/cc-dbug-library.html
    (I haven't tested it)