[Php-avanzado] Recuperar mysql_error

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Vie Mar 19 20:59:13 ARST 2010


Hola Carolina,

El vie, 19-03-2010 a las 20:51 -0200, Silverzero escribió:
> Hola Leo,
> 
> 2010/3/19 Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar>:
> > Hola Carolina,
> >
> > El vie, 19-03-2010 a las 19:40 -0200, Silverzero escribió:
> >> Pero creo queel nro de error no me serviría, yo necesito saber que
> >> imprime el error, para que de acuerdo a lo que diga, yo guardar en una
> >> variable un mensaje personalizado, para avisar al visitante que el
> >> nombre de usuario o el mail que ingresa ya estan registrados.
> >>
> >> Si ingreso un usuario ya registrado el msql_error dice:
> >> Duplicate entry 'nombre_de_usuario' for key 2
> >>
> >> y si sucede con un mail dice:
> >> Duplicate entry 'usuario en mail.com' for key 3
> >>
> >> pero yo no quiero mostrar eso, en su lugar un mensaje personalizado, me explico?
> >
> >        te explicás, pero lo que dice Gerardo es correcto: cada nro de error se
> > corresponde con un tipo, y es más fácil poner en un switch el tipo que
> > andar parseando la cadena del mensaje.
> >
> >        La función que te devuelve el último nro de error es mysql_errno()
> 
> pero el "duplicate entry" no es el mismo nro de error para el mail que
> para el usuario?

	Sí, el "duplicate entry" tiene siempre el mismo código de error... pero
vos sabés qué query estás ejecutando para poder elegir que error
mostrarle al usuario.

	Esto viene de la mano de las tablas bien diseñadas: posiblemente te
esté pasando que el nombre del usuario y el e-mail sean datos
duplicados, ya que como en muchos sitios, podrías autentificar al
usuario con su e-mail.

	En tal caso, fijate os nro de error de cada caso por si es distinto en
caso de duplicar una clave primaria o un índice secundario. De hecho tu
mensaje varía en "key 2" o "key 3" según corresponda... a lo sumo lo
complementás con un parse más leve del nro final del mensaje.

-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado