【发布时间】:2012-04-08 10:15:53
【问题描述】:
当系统向我的一个数据库表插入新记录时,我想运行一个特定的脚本(名为 proc.php 文件,见下文)。(我读到我需要这个 UDF 库,我已经安装了它我的服务器,它工作正常)
为此我写了一个触发器和一个过程
触发码:
DELIMITER $$
USE `db_name`$$
DROP TRIGGER /*!50032 IF EXISTS */ `trigger`$$
CREATE /*!50017 DEFINER = 'root'@'localhost' */ TRIGGER `trigger` AFTER INSERT ON `billing`
FOR EACH ROW
BEGIN
CALL `db_name`.`udf_proc`(NEW.user_id);
END;
$$
DELIMITER ;
程序代码:
DELIMITER $$
CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `db_name`.`udf_proc`(userId INT)
BEGIN
DECLARE cmd CHAR(255);
DECLARE result CHAR(255);
SET cmd = CONCAT('php -f "/var/www/html/proj/proc.php" ',userId);
SET result = sys_eval(cmd);
END$$
DELIMITER;
当我尝试手动插入新记录时,什么也没有发生,我不知道为什么
【问题讨论】:
标签: php mysql triggers procedures