如何使用Mysqli删除数据库中的旧记录?

时间:2015-04-23 21:36:47

标签: mysql mysqli

我正在创建一个在线告示板,我想知道如何在它们被放置后的第二天删除旧通知,这样它就不会使布告板混乱。我没有它的代码,因为我不知道如何做到这一点。任何帮助将不胜感激,对不起,如果这个问题有点乏味。

2 个答案:

答案 0 :(得分:1)

您的“通知”表应该有一个“creation_time”字段,当您插入新行时,此字段将填入NOW()。然后你应该创建一个查询,将creation_time与当前时间进行比较,如果超过24小时,你将删除该行。

就代码而言,

TIMESTAMPDIFF(DAY, creation_time, NOW())应该让你开始。 http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php

至于自动化,这篇文章可能会有所帮助:Run a mySQL query as a cron job?

答案 1 :(得分:0)

只需添加一个包含通知时间戳的列,然后定期运行一个删除旧脚本的脚本。

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "DELETE FROM notices WHERE time_created < timestampadd(hour, -24, NOW())";

if ($conn->query($sql) === TRUE) {
    ...
} else {
    ...
}

$conn->close();
相关问题