簡體   English   中英

使用Cron作業/事件計划程序在30分鍾后刪除MySQL行

[英]Delete MySQL Row after 30 minutes using Cron Jobs/Event Scheduler

我非常喜歡MySQL和PHP / Cron Jobs,所以如果你們都可以輕松地解釋它,就像把事件放在哪里等等那樣,無論如何,這都很棒。

問題:我有一個名為my_Table的表,它有一個包含3個字段的條目:name,age,timestamp。 所以一行就是這樣的。 山姆| 20 | whateverthetimeis。 現在,當那行達到30分鍾時,我希望它被刪除,與其他任何30分鍾的行相同,謝謝大家的幫助,我已經閱讀了其他答案,但就像我說我還是初學者並且不太明白人們在回答什么。 謝謝您的幫助

如果我可以使用Cron Job或MySQL Event(我不知道如何設置一個事件),那么任何人都可以提供幫助! :d

我30分鍾后刪除的代碼(刪除所有行,即使它們不是30分鍾)

<?php
include_once('../config.php');

$con = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);



$runpurge = mysql_query ("DELETE FROM my_table WHERE timestamp < NOW() - INTERVAL 30 MINUTE");






?>

主要顯示代碼:

$result = mysql_query ("SELECT * FROM cw_LFG ORDER BY `time` DESC ") or die(mysql_error);



while ($row=mysql_fetch_array($result)) {

    echo "<tbody>";
    echo "<tr><td>";
    echo strip_tags($row['cname']);
    echo "</td><td>";
    echo $row['level'];
    echo "</td><td>";
    echo strip_tags($row['region']);
    echo "</td><td width='100px'>";
    echo timeElapsed(strtotime($row['time']));
    echo "</td><td style='word-wrap: break-word'>";
    echo strip_tags($row['comment']);
    echo "</td></tr>";
    echo "</tbody>";



}

echo "</table>";
$curtime = date('Y-m-d H:i:s');
$curtimestr = strtotime($curtime);
function timeElapsed($time) {
    $elapsedTime = time() - $time;

    if ($elapsedTime < 1) {
        return 'Right now';
    }
    if ($elapsedTime < 60){
        return '< 1 Minute ago';
    }

SQL會是

DELETE FROM my_table
WHERE timestamp < NOW() - INTERVAL 30 MINUTE

編寫一個執行此SQL的PHP​​腳本,並添加一個每30分鍾運行一次的crontab條目。 或者使用MySQL Event Scheduler定期運行它; 在這里描述。

暫無
暫無

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

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