在数据库中 5 年后删除用户

Delete user after 5 years in database

我的数据库中有一个列,在我的用户数据库中有一个插入,我想在插入 5 年后删除一个用户,

我想用 php 做这个,如果属性有效,我该如何做?

插件是例如2022-03-18 13:18:10。 为了更好地了解我想要的内容,我只是 echo'd delete 而不是数据库删除字符串。只是我无法弥补的if属性在插入5年后删除用户。我现在的代码为例:

if($user['inserton'] > 5 years){
 "echo delete"; }

您必须在 if 条件之后执行删除查询,代码将如下所示:

if($user['inserton'] > 5 years){
  $sql = "DELETE FROM User WHERE id= '$UserId'";

  if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
  } else {
    echo "Error deleting record: " . $conn->error;
  }
}

如果您的数据库中有一列指示用户的插入日期和时间,最好的方法是从那里删除所有用户:

DELETE FROM User WHERE 'createdAt' < NOW() - INTERVAL 5 Year;

但是如果你想删除用户的id,那么你应该检查PHP里面的时间:

if((new DateTime($user['inserton']))->modify("+5 year") < new DateTime()) {
  $query = "DELETE FROM User WHERE id = ?;"; 
  $con = new mysqli($host, $username, $pass, $database); //database connection

  $stmt = $con->prepare($query);
  $stmt->bind_param('i', $userId);
  $stmt->execute();
  $stmt->close();
}

注意:第一种方法会删除数据库中所有超过 5 年的用户,而第二种方法只会删除您从数据库中检索到的用户。

这是代码

<?php
$date1 = date_create($user['inserton']);
$date2 = date_create(date());
$diff = date_diff($date1,$date2);
$diff = $diff->format("%y");
if($diff > 5){
    mysqli_query($con,"DELETE FROM User WHERE id= '$UserId'");
 }else{
    echo "not complete 5 years ";
  }

?>