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. check out this blog post via http://www.cap-sangjin-nhap-khau.xyz

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

  2. Cap Sangjin Chinh Hang`s recent blog post

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

  3. simply click the next website

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

  4. Going to Cap Sangjin

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

  5. information from http://www.cap-sangjin-chinh-hang.xyz

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

  6. Cap Dieu Khien Sangjin Chinh Hang blog entry

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

  7. mouse click on http://www.cap-dieu-khien-chong-nhieu-sangjin-chinh-hang.xyz

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

  8. Learn More Here

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

  9. insurance quotes

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

  10. https://www.cap-dieu-khien-chong-nhieu-sangjin.xyz/

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

  11. recent Cap Dieu Khien Chong Nhieu Sangjin blog post

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

  12. Cap Dieu Khien Chong Nhieu Sangjin officially announced

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

  13. loan calculator download

    blog topic

  14. https://www.cap-dieu-khien-chong-nhieu-sangjin.xyz

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

  15. http://www.cap-dieu-khien-chong-nhieu-sangjin.xyz published a blog post

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

  16. try this dice:

    try this

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

  17. check out this one from Cap Dieu Khien Sangjin

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

  18. crystal massage therapy

    blog topic

  19. mamiqq dice:

    mamiqq

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

  20. meowbarbie leaked erome,

    blog topic

  21. хрумер спам по движкам

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

  22. Created With Love Events

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

  23. Sun and Dust Protection for Wigs

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

  24. Những mẫu đồng hồ nữ đẹp giá rẻ

    blog topic

  25. ste b2b dice:

    ste b2b

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

  26. http://clients1.Google.com.cy/

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

  27. best solutions for digital marketing jd 2026

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

  28. magento ecommerce solution

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

  29. seo ecommerce site jocuri 2026

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

  30. автопостинг GSA

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

  31. how do backlinks help seo knowledge

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

  32. how do seo backlinks work immersion

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

  33. прогон GSA SER

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

  34. health supplement

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

  35. b2b office supplies Ireland 2026/2025

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

  36. как продвигать сайт по запросу

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

  37. layarkaca21 dice:

    layarkaca21

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

  38. Mohamed Hakami

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

  39. Amam7078 dice:

    Amam7078

    blog topic

  40. intuition dice:

    intuition

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

  41. corporate gifting

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

  42. Housewarming painting in Ho Chi Minh City

    blog topic

  43. ведение блога

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

  44. Psychic dice:

    Psychic

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

  45. Company opening gifts

    blog topic

  46. Nicely done dice:

    Nicely done

    blog topic

  47. uditch dice:

    uditch

    blog topic

  48. Sextreffen dice:

    Sextreffen

    blog topic

Deja un comentario

Time limit is exhausted. Please reload the CAPTCHA.

RSS iTunes podcast Twitter

Categorías

Enlaces

Archivos