注册日期验证

我正在尝试删除未在 5 分钟内验证其帐户的用户。


我有一个数据库,它会以这种格式自动添加注册日期:current_timestamp(6)例如:2020-05-12 17:38:33.308392.


我有一个 php 脚本,它试图检查用户是否未经过验证并且 5 分钟还没有过去:


$sql ="DELETE FROM users WHERE createdate < ? AND verified = ?;";


    $stmt = mysqli_stmt_init($conn);

    if(!mysqli_stmt_prepare($stmt, $sql)){

        header("Location:../register.php?error=sqlerror");

        exit();                            

    }

    else{  

        $a = 1;

        $date = date("U") + 300;

        mysqli_stmt_bind_param($stmt, "ss", $date, $a);

        mysqli_stmt_execute($stmt);

    }

我假设代码不起作用,因为 date("U") 函数不会生成相同的日期格式/类型。


我应该如何解决这个问题?在数据库中输入 date("U") 函数,或者有没有办法让 sql 识别日期?


MMTTMM
浏览 129回答 1
1回答

喵喵时光机

您可以将MySQL 间隔与 TIMESTAMPADD 和 CURRENT_TIMESTAMP 结合使用,以增加 5 分钟。    DELETE FROM users WHERE   (TIMESTAMPADD(MINUTE,5,createdate)) < CURRENT_TIMESTAMP(6) AND verified = ?;架构 (MySQL v5.7)    Select * from `time`;| id  | date                       || --- | -------------------------- || 1   | 2020-05-19 17:38:33.308392 || 2   | 2020-05-13 11:57:35.567192 |---
打开App,查看更多内容
随时随地看视频慕课网APP