如何在PHP和JavaScript中保持每分钟运行一次查询来检查数据库


How to keep running a query to check database all the time every minute in PHP and JavaScript

我正在做一个项目,这是一个网站。基本上,它会设置一个提醒,并使用电子邮件/短信通知用户。我正在使用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不能单独触发它。

工作流程:

  1. 创建一个API,包含执行它所需的所有业务逻辑或处理。
  2. 在cPanel或crontab -e中注册一个CRON作业
  3. 使用AJAX调用直接使用结束点,或者作为cron任务将继续工作的单独结束点。

如果您想了解更多有关cron作业的信息,请参考此链接- http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples

谢谢,阿布Jain