簡體   English   中英

如何在第一次更新的“X”分鍾后更改字段值

[英]How to change the field value after 'X' minutes of the first update

我希望在第一次更新10分鍾后更新我的值

例如,我發送了此請求:

UPDATE client set lockclient = 1 WHERE id = 100

我想在10分鍾后發送另一個請求,如下所示:

UPDATE client set lockclient = 0 WHERE id = 100

我在谷歌上發現了這個例子:

   DELIMITER $$
   CREATE EVENT deactivation
    ON SCHEDULE EVERY 10 MINUTE STARTS CURRENT_TIMESTAMP
    DO
      BEGIN
        UPDATE tbl SET tbl.active = FALSE WHERE id =10
      END;
  $$;

但我想只在前10分鍾更新,而不是每10分鍾更新一次。 我可以用php,mysql或javascript做到這一點嗎?

您可以使用setTimeout() javascript函數嘗試Ajax,如下所示:

<div id="id_test"></div>
<SCRIPT language=javascript>
  var update1 = false
      update2 = false;

  function run_ajax(lockclient){  
    // write your call ajax function with lockclient parameter

    // this is an example to test the principle
    var dt=new Date()

    document.getElementById("id_test").innerHTML = dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds() + "<br>lockclient =" + lockclient;   
  }    

  function Timer() {
    // if you have already called 2 times the server, you leave 
    if (update2 && update1)
      return;

    // if you have already called 1 time the server, you call it a second time with '0' as lockclient parameter 
    if (!update2 && update1){
      update2 = true;
      run_ajax(0)
    }        

    // If you did not call the server, you call it a first time with '1' as lockclient parameter 
    if (!update1){
      update1 = true;     
      run_ajax(1)
    }                 
    //setTimeout("Timer()",600000); -> 600000 = 10 minutes

    setTimeout("Timer()",2000); // 2s to test 

   }
   Timer();
</SCRIPT>

第一選擇:

有幾種方法。 如果你想要短路徑,你可以通過sql完成這個。

//Create an event called my_update_event
DELIMITER $$
DROP EVENT IF EXISTS my_update_event$$
CREATE EVENT my_update_event
    ON SCHEDULE
        AT NOW() + INTERVAL 10 MINUTE
    ON COMPLETION NOT PRESERVE
    ENABLE
DO BEGIN
    UPDATE tbl SET tbl.active = FALSE WHERE id =10;
END$$

第二種選擇:

我不確定你在前10分鍾更新的意思是什么? 你也可以使用cron和php / mysql進行更新。 您可以設置一個cron來執行任何操作,在此示例中每10分鍾運行一次

*/10 * * * * /path/to/script/update.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM