2010-08-17 60 views
1

如何创建一个能够始终检查MySQL行的PHP脚本,并且如果设置的查询匹配,它会启动一个事件,如发送电子邮件?如何在MySQL查询为真时触发事件?

例如,在查询匹配Fire开头的电子邮件:

To: [email protected] 
From: [email protected] 
Subject: Set query met, auto email complete. 

这将是各地的MySQL5。我坚持这一点。我最好用Perl或类似的方式做到这一点? 也许它也可以通过电子邮件发送给各种用户? (这不是硬比特:P)

+1

你需要一个cron工作。你可以设置一些你托管的地方吗? – 2010-08-17 10:11:08

+1

相关:http://stackoverflow.com/questions/1803631/is-there-any-way-to-automatically-run-php-script-on-hosting-web-server-withour-cr – 2010-08-17 10:11:59

回答

8

使用cron或类似的调度涉及轮询,它的工作原理,但brute force and ignorance。我不能推荐它:行更改和cron执行检查程序之间有一段时间延迟;反复检查是浪费资源。

优雅的解决方案是数据库触发器,请参阅Using TriggersCan triggers call an external application through a UDF?。每当你的表格行被着火或什么的时候你会得到一个事件,并且你的电子邮件发送程序被立即调用。

如果你想使用Perl,Email::Simple/Email::Sender是漂亮的。

+0

甜,感谢daxim。我想要的确切答案,将在几个小时内尝试出来:D – Dean 2010-08-17 13:22:59

0

您可以使用PHP或Perl或任何其他您喜欢的编程语言。

创建一个cronjob,每X小时执行一次脚本。

例如php queryDatabase.php

就是这样。

+0

我知道CRON,非常有用的工具:-) 实际脚本中的内容如何?有人能给我一个关于我从哪里开始的想法吗? 以前从未做过电子邮件/触发器脚本。只做了MySQL查询:-) – Dean 2010-08-17 10:39:08

+1

用php发送电子邮件http://php.net/manual/en/function.mail.php – jantimon 2010-08-17 11:41:24