Cuando tenemos un error conectando o realizando operaciones con la base de datos (MySQL) usando CodeIgniter, lo normal es que el sistema nos muestre un mensaje por defecto con el código, descripción y query ejecutado, tal que así:
Esta página de error se puede personalizar editando la plantilla /errors/error_db.php en nuestra carpeta de la aplicación. El problema es que este mensaje se mostrará en lugar de nuestra vista o en medio de ella, y además se mostrará siempre a menos que desactivemos la opción de debug de la base de datos, y si lo hacemos nuestra aplicación fallará silenciosamente, no tenemos forma de capturar este error y realizar las operaciones que nos convengan, lo cual sería especialmente útil cuando hacemos peticiones ajax.
Para solucionar esto existen dos métodos no documentados en la clase DB que nos permite capturar el mensaje de error y el número:
$this->db->_error_message() y $this->db->_error_number().
Estos métodos son envoltorios de las funciones mysql_error() y mysql_errno() de php. En la documentación de mysql podemos encontrar el listado de códigos de errores que nos devuelve mysql_errno() (y por lo tanto $this->db->_error_number()), por si nos interesa realizar distintas operaciones según el tipo de error ocurrido.
Como ejemplo os mostraré una forma sencilla de gestionar estos mensajes de error:
En primer lugar debemos desactivar el debug de la base de datos poniendo la opción $db[‘default’][‘db_debug’] a FALSE en el archivo /config/database.php.
Después en nuestro método del modelo, tras el query a la BD podemos poner:
if($data['error'] = $this->db->_error_message()); return $data; |
En el controlador recogeremos esta variable devuelta y la pasaremos a la vista, y en la parte de la vista que nos interese pondremos:
<?php if(isset($error)) echo '<div class="error">'.$error.'</div>';?> |
De la misma manera podemos manejar los errores vía ajax devolviendo esta variable codificada con json en nuestro controlador y gestionándola en el javascript de la vista.
Finalmente, ante la avalancha de peticiones espero volver en breve con un último videotutorial sobre CodeIgniter.
Yoga With Your Child
blog topic
https://sweetchoice.click
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Yoga Meditation
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Cervical spondylosis and yoga
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
intimatefriend.click said in a blog post
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
new content from willbefine.click
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Yoga Mat Cleaning
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Yoga helps cure sciatica
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Thewayofspirit published an article
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
yoga 3 people
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
information from gooncloud.click
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
Yoga poses
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
click the next website page
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web
read page
Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web