php - 删除当前日期和上周之间的记录 - 间隔 14 天
问题描述
我有这段代码,它 - 创建一个文件夹 - 创建一个备份文件 - 从数据库中删除,从当前日期起 7 天之前的所有数据
他们要求我进行更改: - 给定 14 天的期限,删除从 8 天到 14 天的所有数据
或者更确切地说,如果今天是 2019/04/08,则最多选择 2019/03/25 前两周,它会消除从 2019/03/31 开始的所有内容,并将从 2019/04/01 到当前日期 (2019/04/08)
然后它会在两周内从 8 天到 14 天删除所有前一个,并将从当前日期到 7 天前的所有内容留在数据库中。
我知道这件事是用 beetween 完成的,但我无法正确编写查询
<?php
$databaseHost = 'xxx';
$databaseName = 'xxx';
$databaseUsername = 'xxx';
$databasePassword = 'xxx';
$connessione = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName);
$query = $connessione->query("
SELECT *
FROM utenti
WHERE data_password < DATE_SUB(NOW(), INTERVAL 7 DAY)
");
$results = $query->fetch_all(MYSQLI_ASSOC);
$ok = json_encode($results);
function makeDirectory($path, $mode)
{
// this creates if not exist
if (!is_dir($path)) {
return mkdir($path, $mode, true);
} else {
echo $path . " already exist!";
}
}
$path = 'backup_LOG';
$mode = 0777;
// or you can add here that if exist does not call the function makeDirectory
if (!is_dir($path)) {
$risultato = makeDirectory($path, $mode);
}
$fileName = 'backup_LOG/backup_file_' . date('Y_m_d') . '.txt';
$file = fopen($fileName, 'a');
//$file = fopen($fileName, 'x+');
fwrite($file, $ok);
fclose($file);
if (count($results) > 0) {
$firstId = reset($results)['data_password'];
$lastId = end($results)['data_password'];
$stmt = $connessione->prepare("DELETE FROM utenti WHERE data_password < DATE_SUB(NOW(), INTERVAL 7 DAY)");
$stmt->bind_param('ii', $firstId, $lastId);
$stmt->execute();
}
?>
解决方案
DELETE FROM utenti WHERE data_password > DATE_SUB(NOW(), INTERVAL 14 DAY) AND data_password < DATE_SUB(NOW(), INTERVAL 7 DAY);
另外我不确定您的列名是否正确:data_password
但无论如何我都会这样做。
如果 data_password 包含如下日期,您可能还需要将其转换为日期:
DATE(data_password) > ...
推荐阅读
- javascript - 将 Shopify/draggable 与 Alpine.js x-for 指令一起使用
- visual-studio - Visual Studio 新的 .NETCore(3.1 和 net5.0)项目在依赖项上显示黄色三角形,在清理和构建时失败,但没有显示错误
- java - “java.lang.StringIndexOutOfBoundsException”不允许我访问下一个用户输入
- word2vec - word2vec Google News 向量是如何训练的?
- vue.js - 无法加载配置“eslint-plugin-vue”以从
- ios - Swift:UNavigationController 破坏了程序化自动布局
- serial-port - 无法停止 U-Boot 自动引导
- linux - 是否可以使用打包程序设置您的本地环境(如使用 ansible playbook)
- docker - 如何卸载 Docker 或删除 Docker 目录?
- html - 为什么我的外部样式表没有链接到移动设备上?