Hint: If you use
mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)
normal errors are generated instead of exceptions.
mysqli_report
(PHP 5)
mysqli_report — Habilita o deshabilita funciones de informes internos
Descripción
bool mysqli_report
( int
$flags
)mysqli_report() es una potente función que permite mejorar durante la fase de desarrollo y de pruebas las consultas y el código. En función de las banderas usadas, captura errores de las funciones de mysqli y de las consultas que no utilizan índices (o usan un índice incorrecto).
Parámetros
-
banderas -
Banderas váidas Nombre Descripción MYSQLI_REPORT_OFFDesactiva los informes MYSQLI_REPORT_ERRORInformes de errores de llamadas a funciones de mysqli MYSQLI_REPORT_STRICTEn caso de error, lanza mysqli_sql_exception en lugar de usar alertas MYSQLI_REPORT_INDEXInforma si en una consulta no se ha usado índice, o hay un índice erróneo MYSQLI_REPORT_ALLHabilita todas las opciones (informa de todo)
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.2.15 & 5.3.4 | Ahora, el cambio de modo de informes se realiza or consulta, en lugar de por proceso. |
Ejemplos
Ejemplo #1 Estilo orientado a objetos
<?php
/* activar informes */
mysqli_report(MYSQLI_REPORT_ALL);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* comprobar conexión */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* esta consulta debe lanzar un error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* esta consulta debe lanzar un índice erróneo */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
?>
Ver también
- mysqli_driver::$report_mode
- mysqli_debug() - Realiza operaciones de depuración
- mysqli_dump_debug_info() - Volcado de información de depuración en el registro
grepmaster
22-Mar-2009 11:51
Polarina
10-Nov-2007 08:08
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.
anthony dot parsons at manx dot net
05-Nov-2005 12:23
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)
