PHP Conference Nagoya 2025

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 1 note

up
8
nineoclick (atsymbol) gmail (dot) com
7 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;

?>
To Top