elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado  (Leído 11,500 veces)
Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado
« en: 25 Abril 2010, 21:48 pm »

Hola .. pues tengo una duda que me anda rompiendo el coco.

Tengo un procedimiento que inserta datos en una tabla de 2 campos, el primero campo es idpermiso y el segundo es idusuario (unique), desde un procedimiento se insertan datos en la tabla.

el procedimiento es el mismo:

create procedure sp_inserta(id_usuario varchar(100))
begin
insert into permiso (idusuario) values (id_usuario);
end if //

Pues todo funciona siempre y cuando el id_usuario que se envie sea realmente 'unico' .. pero el problema viene cuando envio uno que ya existe. El procedimiento arroja un error. Hay alguna forma de evitar que muestre el error y que muestre un mensaje personalizado, algo asi como "registro no ingresado".

Gracias.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado
« Respuesta #1 en: 25 Abril 2010, 22:03 pm »

Depronto, podría servirté algo así: Verificas el error que se producé y despues lo personaliza de la siguiente manera.
Código
  1. CREATE PROCEDURE sp_inserta(id_usuario VARCHAR(100))
  2. BEGIN
  3.   INSERT INTO permiso (idusuario) VALUES (id_usuario);
  4.   IF @@ERROR = 12
  5.      PRINT 'Error Personalizado'
  6. END

PD: Creo que era así. Lo codee de memoria... Revizalo!


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado
« Respuesta #2 en: 26 Abril 2010, 01:43 am »

Te recomiendo que investigues como se manejan los HANDLER en MySQL para captar las Excepciones. A lo mejor esto te puede ayudar:

Código
  1.  
  2. CREATE PROCEDURE sp_inserta(id_usuario CHAR(20))
  3. BEGIN
  4. DECLARE continue handler FOR sqlstate '23000' SET @x = 1;
  5. INSERT INTO ejemplo VALUES(id_usuario);
  6. IF @x = 1 THEN SELECT concat('Error llave duplicada');
  7. END IF;
  8. END;
  9. //
  10.  
  11.  
En línea

Cioouw

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Evitar mostrar errores en mysql y en vez mostrar mensaje personalizado
« Respuesta #3 en: 26 Abril 2010, 16:25 pm »

Gracias, por lo menos con eso del handler se puede especificar el error en concreto, pero que pasaria si yo no quiera saber el error especifico sino solo saber si el registro se inserto o no ¿?

Edito: SOlucionado.
Citar
declare continue handler for sqlwarning set @x=1;

Gracias.
« Última modificación: 26 Abril 2010, 16:29 pm por Cioouw » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como mostrar en un reporte una busqueda
PHP
eli02 1 1,999 Último mensaje 22 Agosto 2012, 00:02 am
por Shell Root
como mostrar comandos de c++
Programación C/C++
henkel 7 4,608 Último mensaje 26 Octubre 2012, 06:16 am
por BlackZeroX
Mensaje personalizado para checked
.NET (C#, VB.NET, ASP)
DanielPy 1 1,743 Último mensaje 3 Junio 2013, 00:09 am
por DanielPy
Crear control personalizado, para mostrar una regla con zoom y pan.
.NET (C#, VB.NET, ASP)
Harold23 2 4,039 Último mensaje 8 Julio 2017, 16:26 pm
por Eleкtro
[Pregunta]: ¿Mostrar un mensaje alerta en la consola para evitar ataque?
Desarrollo Web
Leguim 4 2,682 Último mensaje 7 Diciembre 2019, 22:47 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines