【问题标题】:How can I update my table after X minutes?如何在 X 分钟后更新我的表格?
【发布时间】:2015-04-23 09:09:47
【问题描述】:

如何在操作 X 分钟后更新我的表格

我发送这个请求:

$req = Query("UPDATE clients SET lockclient = 0 WHERE id = $id")

我想在 5 分钟后创建活动。

UPDATE clients SET lockclient = 1 WHERE id = $id

我尝试使用存储过程创建事件,但这是不可能的

DELIMITER $$ 

CREATE PROCEDURE proc
   (  
      idClient INTEGER 
   ) 
   BEGIN 
        CREATE EVENT updateClientLock
            ON SCHEDULE
                AT NOW() + INTERVAL 5 MINUTE
            ON COMPLETION NOT PRESERVE
            ENABLE
        DO BEGIN
            UPDATE client set lockclient = 0 where id = idClient ;
        END

   END$$ 

DELIMITER ;

还有其他方法吗?

【问题讨论】:

  • 我只是回复another question,我认为这是同样的问题。也许它可以帮助你。
  • 谢谢,但我想用 php 和我的 mysql 来做

标签: php mysql events zend-framework stored-procedures


【解决方案1】:

通过使用 X 分钟的 cron 作业文件,您可以做到 它会在你指定的时间后自动调用它

【讨论】:

  • 将其存储在数据库的特殊表中
【解决方案2】:

问题的解决方案:

static public function eventUpdateLockClient($id, $min)
{
    $bdd = new mysqli ($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    $sql1 = "CREATE EVENT updateClientLock$id
        ON SCHEDULE
        AT NOW() + INTERVAL $min MINUTE
        ON COMPLETION NOT PRESERVE
        ENABLE
        DO BEGIN
            UPDATE clients set lockclient = 0 where id = $id ;
        END";
    $bdd->query(${"sql1"});

}

【讨论】:

  • 这适用于共享主机吗?或者你需要 vps?
猜你喜欢
  • 2015-06-30
  • 1970-01-01
  • 2015-04-09
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多