mySQL中的触发器和过程问题

时间:2012-04-08 10:15:53

标签: php mysql triggers procedures

当系统将新记录插入到我的db表中时,我想运行一个特定的脚本(名为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;

当我试图手动插入新记录时,没有任何事情发生,我不知道为什么

1 个答案:

答案 0 :(得分:0)

您确定,MySQL是否具有/var/www/html/proj/proc.php的权限以及运行php脚本的权限?

你检查过MySQL日志吗?

/var/logs/mysql.log
/var/logs/mysql.err