CakeFest 2024: The Official CakePHP Conference

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_driver::$report_mode -- mysqli_reportHabilita o desabilita las funciones internas de notificación

Descripción

Estilo orientado a objetos

Estilo por procedimientos

Una función útil para mejorar consultas durante el desarrollo de código y pruebas. Dependiendo de las banderas, notifica errores desde llamadas a funciones de mysqli o consultas que no usan un índice (o usan uno erróneo).

Parámetros

flags

Banderas admitidas
Nombre Descripción
MYSQLI_REPORT_OFF Desactiva la notificación
MYSQLI_REPORT_ERROR Notifica errores desde llamadas a funciones de mysqli
MYSQLI_REPORT_STRICT Lanza una mysqli_sql_exception para errors en lugar de para advertencias
MYSQLI_REPORT_INDEX Notifica si no se usó un índice o si era erróneo en una consulta
MYSQLI_REPORT_ALL Establece todas las opciones (notifica todo)

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
5.3.4 El cambio de modo de notificación ahora es por solicitud, en vez de por proceso.
5.2.15 El cambio de modo de notificación ahora es por solicitud, en vez de por proceso.

Ejemplos

Ejemplo #1 Estilo orientado a objetos

<?php

$mysqli
= new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");

/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

/* activar la notificación */
$controlador = new mysqli_driver();
$controlador->report_mode = MYSQLI_REPORT_ALL;

try {

/* esta consulta debería notificar un error */
$resultado = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* esta consulta debería notificar un índice erróneo */
$resultado = $mysqli->query("SELECT Name FROM City WHERE population > 50000");

$resultado->close();

$mysqli->close();

} catch (
mysqli_sql_exception $e) {

echo
$e->__toString();
}
?>

Ejemplo #2 Estilo por procedimientos

<?php
/* activar la notificación */
mysqli_report(MYSQLI_REPORT_ALL);

$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");

/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

/* esta consulta debería notificar un error */
$resultado = mysqli_query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* esta consulta debería notificar un índice erróneo */
$resultado = mysqli_query("SELECT Name FROM City WHERE population > 50000");

mysqli_free_result($resultado);

mysqli_close($enlace);
?>

Ver también

add a note

User Contributed Notes 2 notes

up
6
nineoclick (atsymbol) gmail (dot) com
6 years ago
Seems not clear but flags *could be combined*, as per other flags.
For example:

<?php

# wannabe noticed about all errors except those about indexes
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX;

?>
up
-3
welfordmartin at gmail dot com
3 years ago
As a recommendaton on memory management please don't use the objective way your creating an object to specify one property and thats all your doing with it, much more effective both for the parser and for memory to use the proccedual style for setting the report flag.
To Top