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

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

  1. sbnation.com dice:

    sbnation.com

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

  2. browse around this website

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

  3. more info here

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

  4. simply click the next internet page

    blog topic

  5. just click the next article

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

  6. head to the Producthunt site

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

  7. please click the next internet page

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

  8. click this link

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

  9. Our Webpage dice:

    Our Webpage

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

  10. www.viki.com dice:

    http://www.viki.com

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

  11. why not try here

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

  12. Recommended Online site

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

  13. new post from dreevoo.com

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

  14. page dice:

    page

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

  15. Click Webpage

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

  16. Ava 360 published an article

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

  17. Hahalolo explained in a blog post

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

  18. Full Document

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

  19. https://avader.org/profile/user/businessdaily123

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

  20. visit my homepage

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

  21. just click the up coming post

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

  22. learn more about http://www.party.biz

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

  23. https://bookmarkextent.com/user/businessdaily123

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

  24. Kdpcommunity published a blog post

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

  25. please click Uniquethis

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

  26. Recommended Browsing

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

  27. Learn Even more

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

  28. More Material

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

  29. http://www.eater.com

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

  30. just click Blogfreely

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

  31. https://www.cakeresume.com/me/daily-business

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

  32. her comment is here

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

  33. Myvipon.com explained in a blog post

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

  34. sitereport.netcraft.com said

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

  35. bookmarkbirth.com

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

  36. Bookmark Template site

    blog topic

  37. you could try here

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

  38. published on truereason.click

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

  39. visit these guys

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

  40. go to website

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

  41. visit Gooncloud here >>

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

  42. look at here now

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

  43. click the next internet page

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

  44. official source

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

  45. Suggested Webpage

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

  46. More hints dice:

    More hints

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

  47. recent post by lovesomething.click

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

  48. Yoga Stretch dice:

    Yoga Stretch

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

  49. see here now dice:

    see here now

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

  50. intimatefriend.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