Manejo de errores en MySQL con CodeIgniter

codeigniter_mysql_errorsCuando 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í:

error_db_ci

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.

Enlaces

788 comentarios para “Manejo de errores en MySQL con CodeIgniter”

  1. car Shows dice:

    car Shows

    blog topic

  2. intimatefriend.click noted

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  3. Internet Page

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  4. what is nasal wash

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  5. buitenlands casino

    blog topic

  6. Live Score dice:

    Live Score

    blog topic

  7. today sport news in hindi

    blog topic

  8. Lovesomething`s blog

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  9. immune boosting syrup

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  10. just click Onemorestep

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  11. contemporary classical music albums

    blog topic

  12. red ginseng jelly

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  13. what is medical salt

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  14. sport news of india

    blog topic

  15. 9seed published a blog post

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  16. calcium supplements

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  17. купить крепление для цветов

    blog topic

  18. new post from naturespirit.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  19. панель для хранения инструментов

    blog topic

  20. держатель для подвесных цветов

    blog topic

  21. big boobs romantic porn

    blog topic

  22. 9seed.click said in a blog post

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  23. Truereason.click published an article

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  24. brown rice dice:

    brown rice

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  25. кронштейн для цветов белый

    blog topic

  26. Calmlife`s statement on its official blog

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  27. official http://www.cap-dieu-khien-chong-nhieu-sangjin.xyz blog

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  28. information from thewayofspirit.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  29. use 9signal.click here

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  30. купить фейерверк в минске

    blog topic

  31. read this blog article from truereason.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  32. tepung roti terbaik

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  33. thewayofspirit.click wrote

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  34. jasa pembuatan website dan seo

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  35. jameliz benitez smith sexy naked

    blog topic

  36. new post from onefinething.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  37. Full File dice:

    Full File

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  38. click here to visit Businessdaily for free

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  39. google travel

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  40. Luz Holidays dice:

    Luz Holidays

    blog topic

  41. yoga to reduce waist

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  42. ремонт окон Masters-Okon

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  43. information from lovesomething.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  44. Power Yoga dice:

    Power Yoga

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  45. reviews over at Naturespirit

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  46. similar internet page

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  47. review dice:

    review

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  48. Highly recommended Webpage

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

  49. via hottips.click

    Manejo de errores en MySQL con CodeIgniter « David Rojas – Diseño y desarrollo web

Deja un comentario

Time limit is exhausted. Please reload the CAPTCHA.

RSS iTunes podcast Twitter

Categorías

Enlaces

Archivos