我正在做一个项目,这是一个网站。基本上,它会设置一个提醒,并使用电子邮件/短信通知用户。我正在使用PHP和JavaScript。我的数据库将用户列表存储在表1中,并为每个用户及其任务(包含时间和日期)存储一个单独的表。我想参考数据库每分钟检查任务,即使用户没有登录(浏览器关闭)。我该怎么做才能一直运行查询查询?我想要的东西,将在后台运行的所有时间,即使用户从未打开浏览器。请帮助。存储在用户数据库中的php代码是
<?php
include("init.php");
session_start();
if(isset($_POST))
{
$date = $_POST["date"];
$event = $_POST["event"];
$time = $_POST["time"];
$daily = $_POST["daily"];
$weekly = $_POST["weekly"];
$monthly = $_POST["monthly"];
$fname = $_SESSION['fname'];
$fname = mysql_real_escape_string($fname);
$sql = "insert into $fname(fname,date,event,time,daily,weekly,monthly) values('$fname','$date','$event','$time','$daily','$weekly','$monthly')";
if(mysqli_multi_query($con,$sql))
echo "<br><h3> row inserted...</h3>done";
else
echo "Error in insertion...".mysqli_error($con);
}
?>
代码没有问题。我只需要知道如何和使用什么,我可以参考数据库所有的时间在服务器端,当用户不在页面上。php可以工作24小时,即使浏览器关闭,因为我知道javascript不会工作。
您需要在MySQL(或您正在使用的数据库管理器)中创建一个事件,例如:
CREATE EVENT e_totals
-> ON SCHEDULE AT '2006-02-10 23:59:00'
-> DO INSERT INTO test.totals VALUES (NOW());
或重复事件:
delimiter |
CREATE EVENT e_daily
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Saves total number of sessions then clears the table each day'
DO
BEGIN
INSERT INTO site_activity.totals (time, total)
SELECT CURRENT_TIMESTAMP, COUNT(*)
FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END |
delimiter ;
Sagar您正在寻找的是CRON任务。我担心PHP和Javascript不能单独触发它。
工作流程:
- 创建一个API,包含执行它所需的所有业务逻辑或处理。
- 在cPanel或crontab -e中注册一个CRON作业
- 使用AJAX调用直接使用结束点,或者作为cron任务将继续工作的单独结束点。
如果您想了解更多有关cron作业的信息,请参考此链接- http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples
谢谢,阿布Jain