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. гостевые дома на сутки

    Not Acceptable!

  2. Как выбрать гостевые дома посуточно

    Not Acceptable!

  3. Read the Full Piece of writing

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

  4. read more on Flipboard`s official blog

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

  5. broker forex dice:

    broker forex

    blog topic

  6. 血竭的功能主治

    blog topic

  7. address here dice:

    address here

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

  8. billiard accessories

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

  9. bitchute.com dice:

    bitchute.com

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

  10. internet site

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

  11. Cap Dieu Khien Chong Nhieu Sangjin Chinh Hang blog entry

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

  12. hemen oku dice:

    hemen oku

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

  13. forum.index.hu noted

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

  14. look at more info

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

  15. right here on findaspring.org

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

  16. http://www.blurb.com website

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

  17. jobs.lajobsportal.org blog entry

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

  18. Home Page dice:

    Home Page

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

  19. GARDEN SHED AUSTRALIA GARDEN SHED AUSTRALIA

    blog topic

  20. Vitamin33 – Slot hoki untuk depo kecil

    blog topic

  21. blacksocially.com wrote in a blog post

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

  22. published on myspace.com

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

  23. https://git.guildofwriters.org/be5rice

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

  24. os.mbed.com dice:

    os.mbed.com

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

  25. recent post by Friendstrs

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

  26. Pastelink explained in a blog post

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

  27. my response dice:

    my response

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

  28. the advantage

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

  29. by Spiderum dice:

    by Spiderum

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

  30. Tooter official blog

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

  31. 宝莱坞性视频

    blog topic

  32. Hello to every one, the contents present at this website are actually awesome for
    people experience, well, keep up the nice work fellows.

  33. What is Sivananda yoga

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

  34. related web site

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

  35. คลิปหลุด168

    blog topic

  36. today’s sport news in english

    blog topic

  37. cricket dice:

    cricket

    blog topic

  38. Bathroom designs and functional bright

    blog topic

  39. Gentle yoga dice:

    Gentle yoga

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

  40. why not find out more

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

  41. go here dice:

    go here

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

  42. sport news today

    blog topic

  43. sport news india

    blog topic

  44. live cricket dice:

    live cricket

    blog topic

  45. Today sport news

    blog topic

  46. Live Cricket score

    blog topic

  47. what is macadamia

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

  48. Nasal irrigation bottle

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

  49. Yoga Tree Pose

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

  50. เย็ดดี

    blog topic

Deja un comentario

Time limit is exhausted. Please reload the CAPTCHA.

RSS iTunes podcast Twitter

Categorías

Enlaces

Archivos