相关疑难解决方法(0)

如何在数据进入表后 24 小时自动从 mysql 表中删除数据行?

例如,我有一个数据输入程序,我想在输入数据 1 天后自动删除我的数据。我怎么做?
有人可以用代码解释一下吗?

Create.php 将这些值发送到服务器

<form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="name_portofolio">
    <textarea name="info_portofolio"></textarea>
    <input type="file" accept="image/*"  name="picture_portofolio"> 
    <button type="submit" name="submit">Save</button>
</form>
Run Code Online (Sandbox Code Playgroud)

函数-add.php

<?php

function create_data($name_portofolio, $info_portofolio,
                  $picture_portofolio)
{
   global $connect;
   $name_portofolio = mysqli_real_escape_string($connect, $name_portofolio);
   $info_portofolio = mysqli_real_escape_string($connect, $info_portofolio);


   $filePath = "picture/".basename($picture_portofolio["name"]);
   move_uploaded_file($picture_portofolio["tmp_name"], $filePath);

   $query = "INSERT INTO portofolio 
         (name_portofolio, info_portofolio, picture_portofolio) 
          VALUES ('$name_portofolio', '$info_portofolio', '$filePath')";

   if(mysqli_query($connect, $query))
   {
      return true;
   }else{
      return false;
   }
  } // create_data
Run Code Online (Sandbox Code Playgroud)

数据库文件

<?php
$host = "127.0.0.1";
$user = "root";
$password = ""; …
Run Code Online (Sandbox Code Playgroud)

php mysql jobs

4
推荐指数
1
解决办法
3416
查看次数

MySQL在'到期'后删除行

我试图在MySQL数据库中删除过期的条目,在创建或更新名为lastBeat的字段时使用CURRENT_TIME进行更新,并使用以下查询来检查/删除超过20秒的行:

DELETE * FROM `rmachines` WHERE
 `lastBeat` < (NOW() - 20);
Run Code Online (Sandbox Code Playgroud)

我也尝试过CURRENT_TIME而不是NOW()

有2个主循环:

  1. 每秒更新rmachines中的一行

  2. 执行删除查询

如果2快速执行,当时间滚动到下一分钟(即59-60秒)时,它会删除该行,就像它已经过期一样(即使它确实没有!),否则它表现良好.

如果2每秒执行一次这不是那么明显,那么"错误到期"很少发生,但我每秒运行5次以暴露"问题".

我找到了一个解决方案,经过测试并且似乎在相同的情况下工作:

在mysql数据库中删除超过3个月的行的工作

但谁能告诉我为什么我的方法不起作用?

mysql datetime timestamp delete-row sql-delete

3
推荐指数
1
解决办法
3077
查看次数

标签 统计

mysql ×2

datetime ×1

delete-row ×1

jobs ×1

php ×1

sql-delete ×1

timestamp ×1