我在每页的顶部都有以下内容,所以当任何人加载网站时,PHP会删除特定数据库表中超过3天的任何记录。PHP删除3天以前的MySQL记录
$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < DATE_SUB(DATE('m-d-Y'), INTERVAL 3 DAY");
问题是没有被删除。
我的日期列的数据类型为varchar(20)
,当我在MySQL中插入日期时,它使用date("m-d-Y")
输入。我的日期字段的名称是date
。所以看起来,上面的查询是正确的,但我做了一些错误的,我不知道是什么,因为我看过的每个例子基本上看起来都是一样的,除了他们使用now()
而不是date()
,但我使用具体的日期格式,所以我不能在我的查询中使用now()
。
我做错了什么?
我甚至试图把它变成一个功能:
function deleteOversizeRows() {
$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < DATE_SUB(DATE('m-d-Y'), INTERVAL 3 DAY");
}
deleteOversizeRows();
为什么你的列是'varchar'?它不应该是'日期'或'日期时间'吗? –
因为用户从下拉菜单中选择一个日期,该日期会生成从今天到今天的两个星期。所以所有的'选项'看起来都像'
据我所知'date'或'datetime'需要一个特定的格式,但我从表格中提取日期并以该格式显示给用户。 –