如何在行动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 ;
还有其他办法吗?
答案 0 :(得分:3)
通过使用X分钟的cron作业文件,你可以做到这一点 它将在您指定的时间后自动调用
答案 1 :(得分:0)
问题的解决方案:
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"});
}