文字

mysqli_report

(PHP 5)

mysqli_report开启或禁用(Mysql)内部(错误)报告函数

说明

bool mysqli_report ( int $flags )

mysqli_report() 在开发和测试阶段对于你的查询和代码测试的提升方面是一个非常有用的函数。 它依赖flags参数报告从mysqli函数调用或没有使用索引(或使用了坏的索引)的查询引发的错误。

参数

flags

支持的flags
名称 描述
MYSQLI_REPORT_OFF 关闭错误报告
MYSQLI_REPORT_ERROR 报告mysqli函数调用中的错误
MYSQLI_REPORT_STRICT 以抛出异常mysqli_sql_exception的方式替换警告错误。
MYSQLI_REPORT_INDEX 如果一个查询没有索引或使用了错误的索引则报告错误
MYSQLI_REPORT_ALL 设置所有选项(报告所有)

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

更新日志

版本 说明
5.2.15 & 5.3.4 修改了报告模式,现在是每个请求,而不是每个进程。

范例

面向对象风格

<?php

mysqli_report ( MYSQLI_REPORT_ALL );

$mysqli  = new  mysqli ( "localhost" "my_user" "my_password" "world" );


if ( mysqli_connect_errno ()) {
    
printf ( "Connect failed: %s\n" mysqli_connect_error ());
    exit();
}


$result  $mysqli -> query ( "SELECT Name FROM Nonexistingtable WHERE population > 50000" );


$result  $mysqli -> query ( "SELECT Name FROM City WHERE population > 50000" );
$result -> close ();

$mysqli -> close ();
?>

参见

  • MySQLi_Driver::$report_mode
  • mysqli_debug() - Performs debugging operations
  • mysqli_dump_debug_info() - 将调试信息输出到日志

用户评论:

[#1] grepmaster [2009-03-22 17:51:00]

Hint: If you use

mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)

normal errors are generated instead of exceptions.

[#2] Polarina [2007-11-10 15:08:28]

It should be noted that all reports made by this function, are sent through an exception named 'mysqli_sql_exception' instead of a normal PHP warning.

[#3] anthony dot parsons at manx dot net [2005-11-05 19:23:04]

Be very careful using this function - it's a per-process setting.
If your server is set up to reuse a single PHP process for multiple requests, that means the last setting of this function in any script will affect all other scripts using mysqli.
To be safe always call  <?php mysqli_report(MYSQLI_REPORT_OFF?>  at the end of a script. The CGI version of PHP is probably safe from this.

(Tested using PHP 5.0.5, Apache 2 SAPI module)

上一篇: 下一篇: