2015-04-23 4 views
2

Как я могу обновить свою таблицу после X минут от моего действияКак обновить таблицу после 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

Я просто ответить на [ другой вопрос] (http://stackoverflow.com/a/29820729/3351765), я думаю, что это та же проблема. Может быть, это может вам помочь. – doydoy44

+0

Спасибо, но я хочу сделать это с php и моим mysql –

ответ

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"}); 

} 
+0

будет ли это работать на совместном хостинге? или вам нужны vps для этого? – imbondbaby

3

с помощью файла хрон для X минут вы можете сделать это он будет автоматически вызывать его после указанного времени, предоставленного Вами

+1

Хранить его в специальной таблице в вашей базе данных –

Смежные вопросы