En este post te mostraré cómo depurar errores de MySQL al usar PHP con MySQLi. Es decir, mostrar los errores o advertencias, ya que por defecto MySQLi va a ignorar los errores y no nos avisará si tenemos un error con nuestras consultas SQL.

Por ello es que hoy te mostraré cómo hacer que mysqli muestre los errores y advertencias SQL al insertar, actualizar o llamar a procedimientos almacenados.

Depurar errores de SQL y MySQLi con mysqli_report

Esto es muy fácil de hacer. Simplemente antes de hacer tu conexión de PHP a MySQLi, invoca a la función mysqli_report pasándole una bandera. Yo te recomiendo la bandera MYSQLI_REPORT_ERROR.

Por ejemplo, aquí la invoco así antes de hacer una conexión:

<?php
mysqli_report(MYSQLI_REPORT_ERROR); // <-- Justo aquí
$this->conexion = new mysqli($this->servidor,$this->usuario,$this->contrasena,$this->basedatos);
$this->conexion->set_charset("utf8")

Lo importante es la línea 2, pues de ese modo habilitamos los errores de MySQLi para que nos indique si hay algún problema. Por ejemplo, a mí me reportó el siguiente error:

Warning: mysqli::query(): (42S02/1146): Table ’tabla’ doesn’t exist in C:\xampp\htdocs\archivo.php on line 103

A partir de eso ya podemos investigar más a fondo los errores que se generan en MySQL. Encuentras más información sobre la función aquí expuesta en el sitio oficial de php.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto