Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] insertando triggers en php

Estas en el tema de insertando triggers en php en el foro de PHP en Foros del Web. Hola amigos, esta es mi primera vez haciendo un trigger y es porque debo auditar una tabla que contiene los datos personales de unos clientes ...
  #1 (permalink)  
Antiguo 09/08/2013, 10:11
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
insertando triggers en php

Hola amigos, esta es mi primera vez haciendo un trigger y es porque debo auditar una tabla que contiene los datos personales de unos clientes

resulta que yo hago mis updates y mis inserciones desde mi codigo php, bueno hasta ahi normal, mi pregunta es si tambien se puede hacer un trigger?? bueno lo intente y no me sirvio jejej por eso quisiera postear mi codigo a ver si esto si se puede hacer o si alguien se da cuenta de en que me estoy equivocando. gracias!!

codigo de actualizacion y trigger:

Código HTML:
Ver original
  1. $query1= "CREATE TRIGGER trigger
  2.     AFTER UPDATE ON clientes
  3.     FOR EACH ROW
  4.     BEGIN
  5.         INSERT INTO tblauditabada (Apellido)
  6.         VALUES (OLD.Apellido)
  7.     END;";
  8.     $sql->query($query1);
  9.  
  10.  
  11.  
  12. $query2= "UPDATE clientes
  13.     SET Apellido='{$apellido}'
  14.     WHERE identificacion='{$identificacion}'";
  15.     $res=$sql->query($query2);

pero no me funciona les agradeceria si alguien me puede ayudar
PD: la consulta la recorte un poco para mayor entendimiento
  #2 (permalink)  
Antiguo 09/08/2013, 11:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: insertando triggers en php

Necesariamente debes averiguar de que se trata el error, suponiendo que uses la obsoleta librería mysql seriá tan fácil como:

$res = mysql_query($query) or die('Error en la consulta: ' . mysql_error());

PHP tiene opción para analizar error en todas (eso creo) las librerías de acceso a base de datos.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/08/2013, 12:46
 
Fecha de Ingreso: junio-2013
Ubicación: En cualquier parte de mi casa
Mensajes: 139
Antigüedad: 10 años, 10 meses
Puntos: 14
Respuesta: insertando triggers en php

Disculpa compañero Triby como hablas de obsoleta, yo me entere de eso hace poco! y ahora las consultas las hago asi
$res = mysqli_query($conexion,$query) or die('Error en la consulta: ' . mysqli_error($conexion));


Eso esta bien? estaría optimo? o de esa forma estaría obsoleto también? Gracias y disculpen por ser intruso!
  #4 (permalink)  
Antiguo 09/08/2013, 12:48
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: insertando triggers en php

la que usas esta bien "mysqli" la obsoleta "mysql"
Que error te arroja la consulta.
  #5 (permalink)  
Antiguo 09/08/2013, 12:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: insertando triggers en php

No estás siendo "intruso", este es tu tema.

Si no obtienes mensaje de error, intenta ejecutando esas consultas en consola o PhpMyAdmin y ver si se ejecutan correctamente o no.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 09/08/2013, 13:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: insertando triggers en php

Cita:
PD: la consulta la recorte un poco para mayor entendimiento
Pues si la recortaste, será dificil saber si no sacaste justo una parte donde se producía el error...

Por empezar, de las dos consultas que muestras, ¿cuál genera error?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 09/08/2013, 13:15
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: insertando triggers en php

amm si era un error de sintaxis jejej muchisimas gracias!! lo que necesitaba saber era si si se podia hacer jeje muchas gracias, pero tengo otra pregunta, de esta manera queda el trigger creado o hay que crearlo cada vez que se hace la actualizacion, es decir, si le pongo

CREATE OR REPLACE TRIGGER hace algun efector el replace?? o simplemente cada que se hace una actualizacion se crea el trigger? muchas gracias perdon la ignorancia !!!!!!
  #8 (permalink)  
Antiguo 09/08/2013, 13:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: insertando triggers en php

Cita:
CREATE OR REPLACE TRIGGER hace algun efector el replace?? o simplemente cada que se hace una actualizacion se crea el trigger? muchas gracias perdon la ignorancia !!!!
Los lenguajes procedurales no están estandarizados. Este tipo de cosas depende de qué DBMS estés usando, y en el caso de MYSQL no existe el REPLACE en la creación de un trigger.
para reemplazarlo debes ejecutar primero un DROP sbre él y luego volverlo a crear.

http://dev.mysql.com/doc/refman/5.7/...e-trigger.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/08/2013, 13:46
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: insertando triggers en php

Si solo funciono bn la primera vez me saco este error


this version of mysql doesnt yet support multiple triggers with the same action time and event for one table
  #10 (permalink)  
Antiguo 09/08/2013, 14:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: insertando triggers en php

Porque en MySQL no puedes definir más de un trigger para la misma acción o evento sobre la misma tabla.
Tampoco soporta trigger multievento, como en Oracle.
Como ya te comenté, no existe un estandar en rutinas almacenadas, por lo que la sintaxis, las funciones y las declaraciones, varían entre diferentes sistemas de bases de datos. No son portables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 09/08/2013, 15:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: insertando triggers en php

aam si toca eliminar el trigger cada vez y volverloa crear vale muchas gracias
  #12 (permalink)  
Antiguo 09/08/2013, 15:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: insertando triggers en php

Sólo necesitas crearlo una vez y siempre que actualices se ejecutará automáticamente, para eso son.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 12/08/2013, 09:19
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: insertando triggers en php

claro la cree una vez esa es la idea de los triggers, muychas gracias amigos, una ultima pregunta .. es posible que al insertar en mysql NOW(), se inserte la fecha y la hora pero 5 minutos antes? , es decir si hacerlo con mysql date();

gracias por su ayuda !!

Etiquetas: sql, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:42.