Está en la página 1de 7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

ManejodeerroresenMySQLconCodeIgniter
MasterDigitalJournalism
BecomeaNewMediaJournalist!ChoosefromSixSpecializations.
www.ie.edu/communication

Cuandotenemosunerrorconectandoorealizandooperacionesconlabasededatos(MySQL)usando CodeIgniter,lonormalesqueelsistemanosmuestreunmensajepordefectoconelcdigo,descripcinyqueryejecutado,talque as:

Estapginadeerrorsepuedepersonalizareditandolaplantilla/errors/error_db.phpennuestracarpetadelaaplicacin.El problemaesqueestemensajesemostrarenlugardenuestravistaoenmediodeella,yademssemostrarsiempreamenosque desactivemoslaopcindedebugdelabasededatos,ysilohacemosnuestraaplicacinfallarsilenciosamente,notenemos formadecapturaresteerroryrealizarlasoperacionesquenosconvengan,locualseraespecialmentetilcuandohacemos peticionesajax. ParasolucionarestoexistendosmtodosnodocumentadosenlaclaseDBquenospermitecapturarelmensajedeerroryel nmero: $this>db>_error_message()y$this>db>_error_number(). Estosmtodossonenvoltoriosdelasfuncionesmysql_error()ymysql_errno()dephp.Enladocumentacindemysqlpodemos encontrarellistadodecdigosdeerroresquenosdevuelvemysql_errno()(yporlotanto$this>db>_error_number()),porsi nosinteresarealizardistintasoperacionessegneltipodeerrorocurrido. Comoejemploosmostrarunaformasencilladegestionarestosmensajesdeerror: Enprimerlugardebemosdesactivareldebugdelabasededatosponiendolaopcin$db['default']['db_debug']aFALSEenel archivo/config/database.php. Despusennuestromtododelmodelo,traselqueryalaBDpodemosponer:
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

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

Enelcontroladorrecogeremosestavariabledevueltaylapasaremosalavista,yenlapartedelavistaquenosinterese pondremos:
<ppi(se(err)eh 'dvcas"ro"'$ro.<dv'? ?h fist$ro) co <i ls=err>.err'/i>;>

Delamismamanerapodemosmanejarloserroresvaajaxdevolviendoestavariablecodificadaconjsonennuestrocontroladory gestionndolaeneljavascriptdelavista. Finalmente,antelaavalanchadepeticionesesperovolverenbreveconunltimovideotutorialsobreCodeIgniter. Compartir:

Twittear

Megusta

Share

CreadoelJueves,10dediciembre,2009alas9:24AMyarchivadoenCodeIgniter,DesarrolloWeb,PHP.Puedesseguirlos comentariosdeestaentradaatravsdelfeedRSS2.0.Tambinpuedesdejaruncomentario,otrackbackdesdetupropiaweb. Videotutorial:CRUDconscaffolding,rendimientoyunittestingenCodeigniterEnlaces


Sideboard TeeMnchen Kurierdienst Versicherungsmakler

Fuentesenlawebcon@fontface

15comentariosparaManejodeerroresenMySQLconCodeIgniter
1. Juliandice: diciembre10,2009alas6:01PM Interesantesolucin.Saludos! 2. ManejodeerroresenMySQLconCodeIgniter|DbRunasdice: diciembre10,2009alas7:33PM [...]http://www.davidrojas.net/index.php/desarrolloweb/manejodeerroresenlabasededatosconcodeign AKPC_IDS+="2967,"[...] 3. Anderdice: febrero11,2010alas9:56AM Paraobtenererroresdeconexinenbasesdedatos,nosepuedeutilizarlasolucinquepropones,puestoquealnohaber conexin,lasfunciones_error_messagey_error_numberfallanalnoexistiruniddeconexin. Paraelcasoconcretodelaconexin,youtilizolapropiedadconn_iddelabasededatosparacomprobarsilaconexinse harealizadocorrectamenteono. Amododeejemplo: $db=$this>load>database(nombre_db,TRUE) if(!$db>conn_id){ echoDBconnectionerror! //haceraquiloqueseapararecuperarelerror. }

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

2/7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

4.

DavidRojasdice: febrero11,2010alas10:49AM @AnderTienestodalarazn,precisamentehaceunpardedasmeocurri,quemefallaltenerlosdatosuser/passmal puestos.Paraelrestodeerroressfunciona.Graciasporlaaportacin

5.

Danidice: septiembre28,2010alas5:58PM HolaDavid,tengounproblemaconelmanejodeerroresencodeigniter: try{ foreach($csvDataas$value){ $p=newProductos() $p>nombre=$value['N'] $p>precio=$value['P']//PNoexiste. // } } catch(Exception$ex){ echo>.$ex } Bien,elarray$value['P']Noexiste,sinembargolaexcepcinnomesaltaalcatch. Comopuedosolucionarlo? Graciasyfelicitacionesporlosartculos.

6.

DavidRojasdice: septiembre30,2010alas9:17PM @DaniEstonoesunproblemadeCodeIgniter,esPHPsimplemente.Lanzaselerrorenalgnsitio?Nossisabescomo funcionanlacapturadeerrores,peroparacapturarexcepcionesdebeslanzarlaprimerodondetoque,miralosejemplos: http://php.net/manual/es/language.exceptions.php

7.

Danidice: octubre1,2010alas2:06PM GraciasporlainformacinDavid. Pensabaquecodeigniterlanzabalasexcepcionesporsisolo. S,loteniaparcheadohaciendounacomprobacinantesdelarray if(!isset($value['P']))thrownewException(NoexisteP) Esunapenaquenosiguasconloswebcastdeesteframeworkymsahoraqueestapuntodesalirla2.1,perogracias igualmenteporquemeresultaronmuytilesparainiciarme. Saludosygraciasnuevamente.

8.

DavidRojasdice: octubre4,2010alas6:39PM

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

3/7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

@DaniQuizcuandosalgalaversin2.0oficial(la1.7.2siguesiendolaramaestable)hagaunonuevo. 9. Germndice: noviembre28,2010alas8:31PM David,graciasporlasolucion.Queriapreguntartetambien,cuandohagoundelete,tendriaquepreguntaralgocomo $this>db>delete()//conelnombredelatablaylosagumentosdelafuncionevidentemente. if(isset($this>db>_error_message()) ono? 10. DavidRojasdice: noviembre28,2010alas9:46PM @GermnS,undeletetambinpuededarunerror. 11. galaxdice: mayo7,2011alas6:39PM holaamigo,graciasportodo. megustariasabercuandoempiezasconlasnovedadesdecodeigniter2.0 12. EduardoCastrodice: julio8,2011alas2:09AM Holaamigosmehaservidodemuchoestodecontrolarerroresdelabasededatos. muchasgraciasdeestaformaelcodigoahoraesmaslimpio. un10. saludos 13. josedice: agosto13,2011alas12:56AM holadavidquisieraconsultartecomopuedoverdatosblobencodeigniterporquecuandoincluyoenunphpdentrodel viewelcodigophp: imagen ?> medacomoresultado: erroraltratardemostrarlaimagendehttp://localhost/prueba/mostrarimagen/ yopensabaquenotrahialosresultadosperocuandoborroelheadersimelosmuestraencodigosascii quepodriahacer deantemanomuchasgracias 14. Leodice: agosto16,2011alas1:56PM

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

4/7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

Holaatodos,muyinteresanteelpost,sobreloquediceAnderparacontrolarelerrordeconexion,silaconexinest configuradacomoautomticaynohacemoselload>databasecomopodemoscontrolarla? Paraobtenererroresdeconexinenbasesdedatos,nosepuedeutilizarlasolucinquepropones,puestoquealnohaber conexin,lasfunciones_error_messagey_error_numberfallanalnoexistiruniddeconexin. Paraelcasoconcretodelaconexin,youtilizolapropiedadconn_iddelabasededatosparacomprobarsilaconexinse harealizadocorrectamenteono. Amododeejemplo: $db=$this>load>database(nombre_db,TRUE) if(!$db>conn_id){ echoDBconnectionerror! //haceraquiloqueseapararecuperarelerror. } unsaludoygracias 15. chemedice: abril29,2012alas5:34PM justoloqueestababuscando,excelentearticulo.saludos

Dejauncomentario
Introducetuinformacinpersonalenelformulario,regstrateoidentifcateusandotwitterconelsiguientebotn.

Nombre(obligatorio) Email(noserpublicado)(obligatorio) Pginaweb

Enviarcomentario

Categoras

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

5/7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

CodeIgniter9 CSS7 DesarrolloPersonal1 DesarrolloWeb22 DiseoWeb7 Gadgets1 jQuery4 Marketing&SEO2 PHP11 Screencasts12

Culestu mayordeseo?
Hazlorealidad conlanueva promode Whirlpool. Participaygana!
www.whirlpoolwishlist.

Archivos
enero2011 octubre2010 julio2010 mayo2010 abril2010 marzo2010 febrero2010 enero2010 diciembre2009 noviembre2009 octubre2009 septiembre2009 agosto2009 julio2009 mayo2009 abril2009

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

6/7

16-10-12

Manejo de errores en MySQL con CodeIgniter David Rojas - Diseo y desarrollo web

ProfessionalCodeIgniter ThomasMyer BuyNew25.49

PrivacyInformation

Registrarse Acceder Sobrem VivoenAlicante(Espaa),aunqueestudioytrabajoenlaUMHdeElche.Siteapeteceinvitarmeauncaf,nodudesen enviarmeunmensaje. Navegacin Home Blog Portfolio Varios Contacto Conecta SuscrbetealBlog(RSS) Followme(Twitter) Facebook LinkedIn Reglameunlibro! NopublicTwittermessages. (c)DavidRojas2010

davidrojas.net/index.php//manejo-de-errores-en-la-base-de-datos-con-codeigniter/

7/7

También podría gustarte