簡體   English   中英

2分鍾后如何在PHP中更新SQL

[英]How to update SQL after 2 minutes in PHP

我目前正在嘗試在網頁上創建一個按鈕,該按鈕實際上將重新引導服務器。

單擊網頁上的按鈕后,它將向url發送一個請求,該請求將重新啟動該url所在的服務器,並且還將我數據庫中的3個api服務器UPDATEonline = 0 ,但是,一旦經過2分鍾我想將數據庫中的3個api服務器設置回online = 1 如果在2分鍾內再次單擊該按鈕,那么我想顯示一條錯誤消息,指出This server has already been rebooted in the last 2 minutes, please try again soon

這就是我目前所擁有的,但是當我單擊按鈕時,它不會像應該的那樣重新引導服務器(我已經測試了這種重新引導,並且確實可以正常工作),並且數據庫中的online未更新為0

if (isset($_POST['reboot'])){
    $fp = fsockopen("api.example.co.uk", 80, $errno, $errstr, 5);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: api.example.co.uk\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
        $SQLinsert = $odb -> prepare("INSERT INTO `reboot` VALUES(NULL, reboot, UNIX_TIMESTAMP())");
        $SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD1'");
        $SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD2'");
        $SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD3'");
        $notify = success('Server has been rebooted. Please allow up to 2 minutes for it to get back online.');
    }
    fclose($fp);
    }
}

<form method="post"><button name="reboot" type="submit" class="btn pull-right hidden-sm-down btn-success"><i class="mdi mdi-refresh"></i> Reboot Server</button></form>

好吧,我看到您的過程中存在很多缺陷,但是如果您願意,可以做cof cof do sleep($ seconds)等待這2分鍾,以便為您的用戶顯示消息

要么

也許我聽不懂...另一個,以我的愚見,要以正確的方式進行操作,您應該在此服務器(將數據庫在線設置為0的服務器)和剛剛啟動的服務器中創建一個API ou調用此API將online設置為1,知道嗎?

暫無
暫無

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

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