我需要编写一个php函数,用于在4小时后发送电报通知。
随着应用程序将数据发布到SQL数据库中,在按下“提交”按钮后,我需要启动php功能,并在2天后向我的Telegram通道发送通知,其中包含一些数据我已经发布到db记录中了。
对于发布部分和电报部分我好,我已经将网站链接到频道,并且正常通知来自php工作正常,但我需要一些关于"提醒的建议&# 34;一部分。
我正在考虑一些date()函数并将值发布到记录中,使用日期+ 2days制作另一个变量,然后制作一些for或while循环,但我不认为这可行。一些忠告? 我是php的新手,也许我不知道哪些功能可以帮助我?
答案 0 :(得分:0)
答案 1 :(得分:0)
正如我评论的那样,你的方法是正确的。然而,当你问了更多的东西时,我选择了回答。
正如您所问,当您发送电报通知时,您必须在2天(48小时)后发送提醒通知。如果我是对的,那就是电子邮件。
首先,正如你所说,你必须创建一个列来警告何时应该发送记忆。
此外,要知道是否已发送提醒,您必须创建另一列。它可以是一个标记(true
/ false
)或datetime
列(null
=未发送,filled
=已发送)。
除此之外,cronjob或日程表必须调用PHP脚本。我将向您展示一个PHP脚本示例。
我会将该表格称为reminder
以及列sendIn
和isSent
。
//select only the reminder that has the sendIn lesser than now and that not has been sent
$statement = $pdo->query("SELECT * FROM reminder WHERE sendIn <= NOW() AND isSent is null");
//prepared statement to update the reminder sent
$updateStatement = $pdo->query("UPDATE reminder SET isSent = NOW() WHERE id = :id");
foreach($statement as $reminder)
{
/**
script to send the reminder
**/
//update the reminder
$updateStatement->execute(array(':id' , $reminder['id']));
}
要创建一个cronjob,你可以看看这里: https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job
您无需删除cron,只需让它定期运行并发送所有提醒。