我有一个自动检查器,检查域名将在未来7天内到期,它发送和电子邮件给客户。
我正在使用这个SQL查询:
$sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) = date(now() + interval 7 day) ";它工作得很好,但如果它停止运行,一天过去了,它就不会做它错过的域。什么是最好的方法,使它做它错过的领域也?
例如,如果一个域名在7号到期,它在1号运行,它将看到该域并向客户发送电子邮件,然后在行上放置一个标志,说明电子邮件已经发送,但如果检查器没有在1号运行,它在2号再次运行,它将看不到该域(行)
发布于 2014-07-08 14:39:49
只需对您的代码稍作修改(放入'<'):
$sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) <= date(now() + interval 7 day) ";发布于 2013-06-28 23:42:22
你只检查7天前的几天。您最多需要提前7天检查。将您的代码更改为:
$sql="SELECT * from domain_names where (status = '' or status = 'valid') and date(expiry_date) <= date(now() + interval 7 day) ";因为你有一个标志,任何在这段时间内已经发送电子邮件的人都不会再收到电子邮件。
发布于 2013-06-28 23:42:27
您要检查日期是否小于或等于(今天+7天)。
您还应该在表中有某种“标志”,比如reminderSent -这样就不会在每次运行查询/脚本时发送多个提醒。
$sql = "SELECT * from domain_names WHERE
(status = '' or status = 'valid') AND
date(expiry_date) <= date(now() + interval 7 day) AND
AND !reminderSent";https://stackoverflow.com/questions/17368519
复制相似问题