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. you can try hottips.click

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

  2. https://thewinestewardnh.com/check-presenters

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

  3. Suggested Looking at

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

  4. on front page

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

  5. perlengkapan badminton terbaik

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

  6. vitamin e supplements

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

  7. vitamin supplements

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

  8. onefinething.click post to a company blog

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

  9. content dice:

    content

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

  10. حلقة حلقة التنين Jellycat Bashful

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

  11. agree with this

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

  12. Additional Info

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

  13. baby syrup dice:

    baby syrup

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

  14. vitamin b supplements

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

  15. blog post from Wisebusiness

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

  16. recent http://www.cap-sangjin-chinh-hang.xyz blog post

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

  17. latest game releases

    blog topic

  18. Click at 9signal.click

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

  19. mouse click on Cap Sangjin Nhap Khau

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

  20. sweetchoice.click website

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

  21. learn more about Naturespirit

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

  22. head to the hottips.click site

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

  23. goodfeel.click said

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

  24. blood tonic dice:

    blood tonic

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

  25. visit http://www.cap-dieu-khien-chong-nhieu-sangjin-chinh-hang.xyz now >>>

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

  26. https://www.cap-dieu-khien-sangjin.xyz/

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

  27. Cap Sangjin blog post

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

  28. https://www.cap-sangjin.xyz

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

  29. reviews over at Befine

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

  30. Recommended Web page

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

  31. Quần tây nam hàng hiệu

    blog topic

  32. investigate this site

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

  33. written by Cap Rs 485 Chinh Hang

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

  34. the full report

    blog topic

  35. http://www.cap-rs485-chinh-hang.xyz official

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

  36. recent Cap Rs 485 Imatek Nhap Khau blog post

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

  37. 바이비트 dice:

    바이비트

    blog topic

  38. binance dice:

    binance

    blog topic

  39. What kind of lacquer paintings are

    blog topic

  40. http://www.cap-rs485-chinh-hang.xyz said in a blog post

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

  41. view Cap Rs 485

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

  42. Cap Rs 485 Imatek Nhap Khau official

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

  43. Click at http://www.cap-rs485-chinh-hang.xyz

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

  44. http://Www.cap-rs485-imatek-nhap-khau.xyz writes

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

  45. see this here

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

  46. official site

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

  47. http://www.cap-rs485-imatek-chinh-hang.xyz published a blog post

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

  48. head to Cap Rs 485 Chinh Hang

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

  49. redirect to Cap Dieu Khien Sangjin

    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