5 messages in com.mysql.lists.mysql-esRe: Ejecutar trigger desde php
FromSent OnAttachments
Alvaro Cobo11 Sep 2006 14:31 
Xavier Navarro12 Sep 2006 00:38 
Bonjo12 Sep 2006 08:44 
Alvaro Cobo12 Sep 2006 09:12 
Amable Ortega12 Sep 2006 09:21 
Subject:Re: Ejecutar trigger desde php
From:Xavier Navarro (xvna@gmail.com)
Date:09/12/2006 12:38:38 AM
List:com.mysql.lists.mysql-es

Hola Alvaro,

No he hecho ningún trigger de mysql, pero desde el punto de vista de PHP, ¿no se deberían "escapar" los $? Piensa que en php el $ marca las variables del script. Prueba a poner:

DELIMITER \$\$ DROP TRIGGER bi_tbl05_Pagos \$\$ CREATE ...

No se si funcionará, pero a primera vista es lo que se me ocurre.

2006/9/11, Alvaro Cobo <cobo@gmail.com>:

Hola chicos y chicas:

Por razones de actualización de un sistema necesito ejecutar un trigger de MySQL desde PHP.

He creado el siguiente script, pero me da error. (Si ejecuto el trigger desde SQLyog o phpMyAdmin no tengo ningun problema)

Alguien tendía la gentileza de explicarme como podría hacer para ejecutar un trigger desde PHP.

Desde ya, estoy muy agradecido.

Saludos,

Alvaro.

Plataforma SO: Debian Sarge MySQL 5.0.21 PHP: 5.1.4-1 Apache 2.0

SCRIPT:

<?php # FileName="Connection_php_mysql.htm" # Type="MYSQL" # HTTP="true" $hostname_pss_conn = "localhost"; $database_pss_conn = "mibase"; $username_pss_conn = "usuario"; $password_pss_conn = "mipassword"; $pss_conn = mysql_connect($hostname_pss_conn, $username_pss_conn, $password_pss_conn);

mysql_select_db($database_pss_conn, $pss_conn); $query_rec_fechas = "DELIMITER $$ DROP TRIGGER bi_tbl05_Pagos $$ CREATE TRIGGER bi_tbl05_Pagos BEFORE INSERT on CompartirRecursos.tbl05_Pagos FOR EACH ROW BEGIN INSERT INTO tbl05_Pagos_Deuda ( estado ) SELECT IF( view_capital_especie.dias_diferencia>0 AND ( (view_capital_especie.total_recurso_dinero - view_pagos_especie.recurso_dinero) >= 0 OR view_pagos_especie.recurso_dinero IS NULL ) , 'Atrasado', 'Al día' ) as status_entrega FROM view_pagos_especie RIGHT JOIN view_capital_especie ON view_pagos_especie.FK_Recurso = view_capital_especie.PK_Cred_Recurso; END$$ DELIMITER ; ";

$sql=mysql_query($query_rec_fechas) or die('mysql_error') ; ?>

ERROR:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$ DROP TRIGGER bi_tbl05_Pagos $$ CREATE TRIGGER bi_tbl05_Pagos BEFORE' at line 1