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. เว็บใหญ่ VENUS168

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

  2. MUNMELLO ไม่มีขั้นต่ำ

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

  3. brb969 สล็อตแตกง่าย

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

  4. argus168 เครดิตฟรี

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

  5. Lace Wigs dice:

    Lace Wigs

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

  6. Mẫu đồng hồ nữ đẹp 2024

    blog topic

  7. ezproxy.ttuhsc.edu

    blog topic

  8. ste b2b dice:

    ste b2b

    blog topic

  9. Túi xách công sở nữ đẹp

    blog topic

  10. Fashionable women’s handbags

    blog topic

  11. Tất cả các loại quần nam

    blog topic

  12. Sakartvelo dice:

    Sakartvelo

    blog topic

  13. Simple evening dress models

    blog topic

  14. 주소광장 dice:

    주소광장

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

  15. branded women’s office handbags

    blog topic

  16. Продолжить…

    blog topic

  17. buy penis enlargement pills

    blog topic

  18. bokep dice:

    bokep

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

  19. let's play dice:

    let’s play

    blog topic

  20. Cup to Milliliter Conversions

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

  21. Chesapeake Bay lifestyle

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

  22. jusomoa.clickn.co.kr

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

  23. купить виагру онлайн

    blog topic

  24. big win casino

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

  25. valuable dice:

    valuable

    blog topic

  26. https://vpnguide.top

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

  27. The Cannibal President

    blog topic

  28. quanto tempo prima prendere kamagra

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

  29. продать лекарства Тюмень ФармСкупка

    blog topic

  30. stromectol günstig online bestellen

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

  31. que es rybelsus

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

  32. A片 dice:

    A片

    blog topic

  33. BUY CANNABIS ONLINE

    blog topic

  34. Louis chairs dice:

    Louis chairs

    blog topic

  35. Order fentanyl powder with discreet shipping

    blog topic

  36. BUY RIVOTRIL dice:

    BUY RIVOTRIL

    blog topic

  37. 6m3uw4 Buy White-Hat Guest Posts + Permanent Dofollow Backlinks for etowncolorado.com — Grow Ahrefs Domain Rating DR • Moz Domain Authority DA • Majestic Trust Flow TF Climbs — Permanent Top Google Rankings — Fast-Growing & Established Niches • World…

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

  38. flim bokep amerika

    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