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

April 15, 2018 | Author: asldadspo | Category: My Sql, Php, Databases, Technology, World Wide Web


Comments



Description

16-10-12Manejo de errores en MySQL con CodeIgniter « David Rojas - Diseño y desarrollo web Manejo de errores en MySQL con CodeIgniter Master Digital Journalism Become a New­Media Journalist! Choose from Six Specializations. www.ie.edu/communication Cuando 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í: 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: i(dt[err]=$hs>b>errmsae); f$aa'ro' ti-d-_ro_esg() rtr $aa eun dt; davidrojas.net/index.php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 1/7  y en la parte de la vista que nos interese pondremos: <ppi(se(err)eh 'dvcas"ro"'$ro. 2009 a las 9:24 AM y archivado en CodeIgniter. rendimiento y unit testing en CodeigniterEnlaces Sideboard Tee München Kurierdienst Versicherungsmakler カードローン Fuentes en la web con @font­face » 15 comentarios para “Manejo de errores en MySQL con CodeIgniter” 1. las funciones _error_message y _error_number fallan al no existir un id de conexión. PHP.> 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.net/index.. 10 de diciembre. no se puede utilizar la solución que propones. Saludos! 2.] http://www.php/desarrollo­web/manejo­de­errores­en­la­base­de­datos­con­codeign… AKPC_IDS += "2967.Diseño y desarrollo web En el controlador recogeremos esta variable devuelta y la pasaremos a la vista. Para el caso concreto de la conexión.  Manejo de errores en MySQL con CodeIgniter | DbRunas dice: diciembre 10.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas . 2009 a las 7:33 PM [. Finalmente.0.<dv'? ?h fist$ro) co <i ls=err>.. puesto que al no haber conexión. También puedes dejar un comentario. Compartir: Twittear 2 Me gusta 0 Share Creado el Jueves. ante la avalancha de peticiones espero volver en breve con un último videotutorial sobre CodeIgniter. yo utilizo la propiedad conn_id de la base de datos para comprobar si la conexión se ha realizado correctamente o no.davidrojas. o trackback desde tu propia web.   Julian dice: diciembre 10..err'/i>. Desarrollo Web.; } davidrojas.net/index. TRUE); if (!$db­>conn_id) { echo “DB connection error!”; //hacer aqui lo que sea para recuperar el error…..php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 2/7 . Puedes seguir los comentarios de esta entrada a través del feed RSS 2. « Videotutorial: CRUD con scaffolding."; [.] 3. 2009 a las 6:01 PM Interesante solución. 2010 a las 9:56 AM Para obtener errores de conexión en bases de datos.   Ander dice: febrero 11. A modo de ejemplo: $db = $this­>load­>database(‘nombre_db’. Diseño y desarrollo web 4. 6. lo tenia parcheado haciendo una comprobación antes del array if( !isset($value['P']) )throw new Exception (‘No existe P); Es una pena que no siguas con los webcast de este framework y más ahora que está apunto de salir la 2.php 7. precisamente hace un par de días me ocurrió. ¿Lanzas el error en algún sitio? No sé si sabes como funcionan la captura de errores.   David Rojas dice: febrero 11. 2010 a las 6:39 PM davidrojas.net/manual/es/language.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas . Para el resto de errores sí funciona.php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 3/7 .$ex; } Bien.   Dani dice: octubre 1. el array $value['P'] No existe. 2010 a las 10:49 AM @Ander Tienes toda la razón.net/index.1.exceptions. sin embargo la excepción no me salta al catch. pero gracias igualmente porque me resultaron muy útiles para iniciarme. que me falló al tener los datos user/pass mal puestos. Pensaba que codeigniter lanzaba las excepciones por si solo. Gracias por la aportación  5. pero para capturar excepciones debes lanzarla primero donde toque. //… } } catch (Exception $ex){ echo ‘—>’. Como puedo solucionarlo? Gracias y felicitaciones por los artículos. Sí. Saludos y gracias nuevamente. 2010 a las 5:58 PM Hola David. tengo un problema con el manejo de errores en codeigniter: try{ foreach($csvData as $value){ $p = new Productos(); $p­>nombre = $value['N']; $p­>precio = $value['P']; //’P’ No existe. 8. es PHP simplemente.   Dani dice: septiembre 28. mira los ejemplos: http://php. 2010 a las 2:06 PM Gracias por la información David.   David Rojas dice: septiembre 30. 2010 a las 9:17 PM @Dani Esto no es un problema de CodeIgniter.   David Rojas dice: octubre 4.    Leo dice: agosto 16. 2010 a las 8:31 PM David.   galax dice: mayo 7. Queria preguntarte tambien. cuando hago un delete.php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 4/7 . 2010 a las 9:46 PM @Germán Sí.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas . 2011 a las 12:56 AM hola david quisiera consultarte como puedo ver datos blob en codeigniter por que cuando incluyo en un php dentro del view el codigo php: imagen ?> me da como resultado: error al tratar de mostrar la imagen de http://localhost/prueba/mostrarimagen/ yo pensaba que no trahia los resultados pero cuando borro el header si me los muestra en codigos ascii que podria hacer de ante mano muchas gracias … 14. un delete también puede dar un error.net/index. me gustaria saber cuando empiezas con las novedades de codeigniter 2.   jose dice: agosto 13.0 oficial (la 1.Diseño y desarrollo web @Dani Quizá cuando salga la versión 2.   David Rojas dice: noviembre 28. muchas gracias de esta forma el codigo ahora es mas limpio. gracias por todo .2 sigue siendo la rama estable) haga uno nuevo. 2011 a las 6:39 PM hola amigo.0 12. tendria que preguntar algo como $this­>db­>delete() //con el nombre de la tabla y los agumentos de la funcion evidentemente. if (isset($this­>db­>_error_message()) o no? 10.7.   Germán dice: noviembre 28. 2011 a las 1:56 PM davidrojas. gracias por la solucion. un 10. saludos 13. 9.   Eduardo Castro dice: julio 8. 11. 2011 a las 2:09 AM Hola amigos me ha servido de mucho esto de controlar errores de la base de datos.  TRUE); if (!$db­>conn_id) { echo “DB connection error!”; //hacer aqui lo que sea para recuperar el error…. las funciones _error_message y _error_number fallan al no existir un id de conexión. Para el caso concreto de la conexión. no se puede utilizar la solución que propones.   cheme dice: abril 29.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas .Diseño y desarrollo web Hola a todos.net/index.  Nombre (obligatorio)  E­mail (no será publicado) (obligatorio)  Página web Enviar comentario       Categorías davidrojas. muy interesante el post. yo utilizo la propiedad conn_id de la base de datos para comprobar si la conexión se ha realizado correctamente o no. puesto que al no haber conexión.; }” un saludo y gracias 15. ¿si la conexión está configurada como automática y no hacemos el “load­>database” como podemos controlarla? “Para obtener errores de conexión en bases de datos. 2012 a las 5:34 PM justo lo que estaba buscando. A modo de ejemplo: $db = $this­>load­>database(‘nombre_db’. sobre lo que dice Ander para controlar el error de conexion. saludos Deja un comentario Introduce tu información personal en el formulario. regístrate o identifícate usando twitter con el siguiente botón. excelente articulo.php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 5/7 . Diseño y desarrollo web CodeIgniter 9 CSS 7 Desarrollo Personal 1 Desarrollo Web 22 Diseño Web 7 Gadgets 1 jQuery 4 Marketing & SEO 2 PHP 11 Screencasts 12 ¿Cuál es tu mayor deseo? Hazlo realidad con la nueva promo de Whirlpool.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas . ¡Participa y gana! www.php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 6/7 .whirlpoolwishlist.net/index.… Archivos enero 2011 octubre 2010 julio 2010 mayo 2010 abril 2010 marzo 2010 febrero 2010 enero 2010 diciembre 2009 noviembre 2009 octubre 2009 septiembre 2009 agosto 2009 julio 2009 mayo 2009 abril 2009 davidrojas. 49 Privacy Information Registrarse Acceder Sobre mí Vivo en Alicante (España).php/…/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ 7/7 . (c) David Rojas 2010 davidrojas.16-10-12 Manejo de errores en MySQL con CodeIgniter « David Rojas .Diseño y desarrollo web Professional CodeIgniter Thomas Myer   Buy New £25.net/index. no dudes en enviarme un mensaje. Navegación Home Blog Portfolio Varios Contacto Conecta Suscríbete al Blog (RSS) Follow me (Twitter) Facebook LinkedIn Regálame un libro! No public Twitter messages. aunque estudio y trabajo en la UMH de Elche. Si te apetece invitarme a un café.
Copyright © 2024 DOKUMEN.SITE Inc.