Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda con TRIGGER :(

Estas en el tema de Ayuda con TRIGGER :( en el foro de Bases de Datos General en Foros del Web. Cita: mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON archivos -> FOR EACH ROW -> BEGIN -> IF NEW.artist LIKE '%<%' THEN -> SET NEW.artist = ...
  #1 (permalink)  
Antiguo 30/07/2009, 10:51
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 3
Ayuda con TRIGGER :(

Cita:
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON archivos
-> FOR EACH ROW
-> BEGIN
-> IF NEW.artist LIKE '%<%' THEN
-> SET NEW.artist = OLD.artist;
-> END IF;
-> END;//
Query OK, 0 rows affected (0,01 sec)

Hola, he hecho este TRIGGER pero me sigue dejando actualizar el campo artist de la tabla archivos con el caracter <

A que se debe???

Muchas gracias!!
__________________
aste nagusia
  #2 (permalink)  
Antiguo 30/07/2009, 12:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 11 meses
Puntos: 360
Respuesta: Ayuda con TRIGGER :(

Deberías validar por fuera del trigger cual es el contenido del valor a insertar.

Dentro del trigger, siempre se va a ejecutar los valores que se han ingresado.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 31/07/2009, 04:12
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 22 años, 1 mes
Puntos: 3
Respuesta: Ayuda con TRIGGER :(

Cita:
Iniciado por huesos52 Ver Mensaje
Deberías validar por fuera del trigger cual es el contenido del valor a insertar.

Dentro del trigger, siempre se va a ejecutar los valores que se han ingresado.

Un saludo
el problema es que me han hecho un par de injections, por eso quiero asegurarme con el trigger.
__________________
aste nagusia
  #4 (permalink)  
Antiguo 31/07/2009, 05:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Ayuda con TRIGGER :(

¿Y cómo pudieron meter el código? Si usaron TextBoxes, entonces puedes hacer lo que dice huesos52: Controlarlo en el formulario.
Yo, personalmente, preferiría controlarlo por stored procedures, ya que en ellos los valores entran como parámetros y no como sentencias, lo que hace que un SQL injection genere un error de sintaxis y en todo caso, si llega a entrar, genera un error de parámetro, porque el SQL injection debe llevar símbolos que los SP no admiten como entrada de variables (no manejan ni parámetros TEXT ni BLOB).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 31/07/2009, 07:53
 
Fecha de Ingreso: julio-2009
Mensajes: 52
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con TRIGGER :(

yo te aconsejaria negar en la condicion:

mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON archivos
-> FOR EACH ROW
-> BEGIN
-> IF NEW.artist not LIKE '%<%' THEN
-> -- colocas la setencia que quieres hacer directamente (bien sea el update o el insert)
-> END IF;
-> END;//
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.