W3docs

mysqli_dump_debug_info

Aprende cómo mysqli_dump_debug_info() escribe información de depuración de MySQLi en el log del servidor MySQL. Sintaxis procedural y OO, valores de retorno y ejemplos.

La función PHP mysqli_dump_debug_info() vuelca información de depuración de bajo nivel sobre una conexión MySQLi en el log de errores del servidor MySQL. Esta página explica qué hace la función, cuándo resulta realmente útil, su sintaxis en estilos procedural y orientado a objetos, y cómo interpretar la salida que produce.

Qué hace mysqli_dump_debug_info()

mysqli_dump_debug_info() solicita a la biblioteca cliente MySQL subyacente que escriba información interna sobre el estado de la conexión en el archivo de log del servidor. El tipo de detalle que emite — tablas abiertas, objetos en caché, uso de memoria de la conexión — está pensado para las personas que desarrollan MySQL, no para la depuración habitual de aplicaciones. En la práctica, recurrirás a ella solo cuando estés rastreando un problema difícil de reproducir a nivel del controlador.

La función acepta un único argumento, la conexión MySQLi, y devuelve un boolean: true en caso de éxito y false en caso de fallo. No devuelve el texto de depuración a tu script; la información va directamente al log del servidor (la ubicación depende de tu configuración de MySQL, generalmente algo como /var/log/mysql/error.log).

Sintaxis

Existen dos estilos equivalentes, ya que cada característica de MySQLi está disponible tanto como función procedural como método de objeto.

// Procedural style
mysqli_dump_debug_info(mysqli $mysql): bool

// Object-oriented style
$mysqli->dump_debug_info(): bool
ParámetroDescripción
$mysqlUn object de conexión devuelto por mysqli_connect(). Requerido en el estilo procedural.

El valor de retorno es true si la solicitud de volcar la información fue exitosa, y false en caso contrario.

Ejemplo procedural

El ejemplo siguiente abre una conexión, solicita un volcado de depuración e informa si la solicitud fue exitosa. Reemplaza las credenciales con las tuyas propias para ejecutarlo contra un servidor real.

Volcado de información de depuración (procedural)

<?php
// Throw exceptions instead of warnings on connection errors
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "user", "password", "my_database");

// Ask the client library to write debug info to the MySQL server log
if (mysqli_dump_debug_info($mysqli)) {
    echo "Debug information was dumped to the server log.\n";
} else {
    echo "Could not dump debug information.\n";
}

mysqli_close($mysqli);
?>

Tras ejecutar esto, abre el log de errores del servidor MySQL para leer el volcado. La función en sí solo te indica si la solicitud fue aceptada — el texto de diagnóstico real reside en el log.

Ejemplo orientado a objetos

Si prefieres la API MySQLi orientada a objetos, llama a dump_debug_info() directamente sobre el object de conexión.

Volcado de información de depuración (orientado a objetos)

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "user", "password", "my_database");

if ($mysqli->dump_debug_info()) {
    echo "Debug information was dumped to the server log.\n";
} else {
    echo "Could not dump debug information.\n";
}

$mysqli->close();
?>

Ambos estilos hacen exactamente lo mismo; elige el que mejor se adapte al resto de tu código.

Cuándo usarla (y cuándo no)

Recurre a mysqli_dump_debug_info() solo cuando sospeches un problema dentro de la propia capa de conexión MySQL — por ejemplo, sentencias preparadas con fugas o un crecimiento inesperado de memoria en una conexión de larga duración. Para la depuración ordinaria de aplicaciones casi siempre querrás algo más específico:

Nota: la función solo escribe en el log del servidor cuando el servidor MySQL ha sido compilado con soporte de depuración y está configurado para aceptarlo. En una compilación de producción estándar puede no hacer nada útil en silencio, lo que es una razón más para que sea una herramienta especializada y no de uso diario.

Conclusión

mysqli_dump_debug_info() es un diagnóstico de bajo nivel y específico que vuelca detalles internos de la conexión MySQLi en el log del servidor MySQL y devuelve un boolean que indica si la solicitud fue exitosa. Es valiosa para investigaciones a nivel de controlador, pero rara vez es la herramienta adecuada para el trabajo cotidiano — para eso, prefiere mysqli_error(), las estadísticas de conexión o el propio registro de errores de PHP.

Práctica

Práctica
¿Qué devuelve la función mysqli_dump_debug_info() de PHP?
¿Qué devuelve la función mysqli_dump_debug_info() de PHP?
Was this page helpful?