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 <? 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)
mysqli_report
(PHP 5)
mysqli_report — Enables or disables internal report functions
Opis
bool mysqli_report
( int
$flags
)mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).
Parametry
-
flags -
Supported flags Name Description MYSQLI_REPORT_OFFTurns reporting off MYSQLI_REPORT_ERRORReport errors from mysqli function calls MYSQLI_REPORT_STRICTThrow mysqli_sql_exception for errors instead of warnings MYSQLI_REPORT_INDEXReport if no index or bad index was used in a query MYSQLI_REPORT_ALLSet all options (report all)
Zwracane wartości
Zwraca TRUE w przypadku powodzenia, FALSE w
przypadku błędu.
Rejestr zmian
| Wersja | Opis |
|---|---|
| 5.2.15 & 5.3.4 | Changing the reporting mode is now be per-request, rather than per-process. |
Przykłady
Przykład #1 Styl obiektowy
<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* this query should report a bad index */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
?>
Zobacz też:
- mysqli_driver::$report_mode
- mysqli_debug() - Performs debugging operations
- mysqli_dump_debug_info() - Dump debugging information into the log
anthony dot parsons at manx dot net ¶
7 years ago
Thomas ¶
9 months ago
Please note that mysqli_report is NOT deprecated (see https://bugs.php.net/bug.php?id=55329).
grepmaster ¶
4 years ago
Hint: If you use
mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)
normal errors are generated instead of exceptions.
