PHP MySQL 删除早于 1 分钟的行

标签 php mysql

很抱歉这篇文章有很多答案,但我正在旋转我的轮子并且没有想法。非常简单:删除所有超过 1 分钟的记录:

function deleteExpiredKeys ($link) {

    $date = date("Y-m-d H:i:s");
    $time = strtotime($date);
    $time = $time - (60);
    $date = date("Y-m-d H:i:s", $time);

    $sql = 'DELETE from Session_Keys
            WHERE updated_at < ' . $date;

    $result = mysqli_query($link, $sql);

    if (!$result) return false;

    return true;
}

'updated_at' 是一个 datetime 字段。

这不会引发任何错误,但也不会删除任何内容。我尝试了很多不同的东西,其中大多数比我在这里发布的更优雅,但没有任何效果。谁能帮我?谢谢。

最佳答案

您不需要在 PHP 中创建时间。 MySQL 可以自己进行时间计算。

DELETE from Session_Keys
WHERE updated_at < NOW() - INTERVAL 1 MINUTE

关于PHP MySQL 删除早于 1 分钟的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424107/

相关文章:

mysql - Amazon RDS 和管理我自己的数据库

php try catch报错

php - 从表 B 中列出的相同 id 从 mysql 表 A 获取相关用户名

javascript - 如何使用秒表javascript中的php在mysql数据库中存储计时器值而不使用隐藏输入

MySql - BEFORE INSERT TRIGGER 可以插入 2 列吗?

mysql - 如何找到最常见和最不常见的数字

php - CakePhp3 select() 查询不止一层

php - 使用PHP的Carbon时如何将日期设置为本月的第n天?

mysql - 向 MySQL 中添加数据将不起作用

php - SQL帮助,无法通过连接获得所需的输出