有没有办法从MySQL中执行PHP脚本?

20

我希望能够从MySQL存储过程中调用并执行一个PHP脚本,这是否可行?

CREATE PROCEDURE simpleproc (OUT param1 INT)
    BEGIN
         Call my php script here
    END//

[编辑]
实际上,我正在尝试在满足条件时触发事件,例如当我的表字段值与当前时间相匹配时。然后,我想捕获该事件并发送电子邮件。


7
不能!请分享您的确切问题,我们会尝试寻找替代解决方案。 - Suresh Kamrushi
3
不,你不能这样做。尽管你可以从数据库中检索PHP脚本并调用eval函数,但无论你做什么都是错误的。 - Linas
1
请查看 http://www.databasesecurity.com/mysql/HackproofingMySQL.pdf 中的 do_system() - Bogdan Burym
1
可能是重复的问题 http://stackoverflow.com/questions/2943205/execute-php-via-mysql?rq=1 - antony.trupe
一个 cron 脚本可能比使用数据库触发器更好。 - Mark Baker
3个回答

20

12
DELIMITER @@

CREATE TRIGGER Test_Trigger
AFTER INSERT ON MyTable
FOR EACH ROW
BEGIN

DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=CONCAT('/usr/bin/php ', '/home/test/beta/demo.php');
SET result = sys_exec(cmd);

END;
@@
DELIMITER ;

源代码


没时间测试...它真的能用吗?你测试了吗?看起来很棒! - Bogdan Burym

3
为了解决您的问题,您可以创建任务表。通过存储过程,您可以将任何任务字符串放入此表中。在服务器上,您可以通过crontab运行PHP脚本。脚本将检查此表并执行一些操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接