Php 如何在特定日期自动删除MySQL数据库中的行?

Php 如何在特定日期自动删除MySQL数据库中的行?,php,mysql,Php,Mysql,我知道必须有一种方法在指定日期自动删除MySQL表中的一行。我今天只是脑死亡:/ 假设我有CMS,我输入帖子,希望表中的一个字段是“delete_date”,如果我在该字段中输入日期,它将在指定的日期删除该行。如果我不输入日期,它将不会自动删除 使用PHP/MySQL的最佳方法是什么。提示或示例会有所帮助。运行计划任务(cron作业),该任务将删除删除日期字段大于或等于当前日期的所有行。基本查询: DELETE*来自cms\u表,其中DELETE\u date='$the\u date\u to

我知道必须有一种方法在指定日期自动删除MySQL表中的一行。我今天只是脑死亡:/

假设我有CMS,我输入帖子,希望表中的一个字段是“delete_date”,如果我在该字段中输入日期,它将在指定的日期删除该行。如果我不输入日期,它将不会自动删除

使用PHP/MySQL的最佳方法是什么。提示或示例会有所帮助。

运行计划任务(cron作业),该任务将删除删除日期字段大于或等于当前日期的所有行。

基本查询:

DELETE*来自cms\u表,其中DELETE\u date='$the\u date\u to\u DELETE'


(请参阅:)

我不懂PHP,但这实际上是一个与语言无关的问题,除非您不知道如何在该语言中执行SQL

正如@tylerl所建议的,您可以运行计划任务。用.Net语言很容易做到,但对PHP不太清楚。如果希望在一天中不断删除旧记录,还可以选择运行服务。同样,在.Net中也很容易

但是,如果您有一个应用程序(PHP、.Net等)要物理检查要删除的记录:

delete * from myTable where recordDateField > 'cutOffDate' // I think you pass parameters with a `$` - not sure

这里有一个语法错误。发布的星号
DELETE*
无效。手册确实说明了一个的用法,但不是这样。在这个例子中,手册显示了
*
tbl\u name[.*][,tbl\u name[.*]]…
-答案应该被编辑以反映这个变化。他们在这里使用MySQL。从中发布的删除*星号无效。手册确实说明了一个的用法,但不是这样。在本例中,手册显示了
*
,从中提取
tbl_名称[.*][,tbl_名称[.*]]…
-答案需要修正。@FunkFortyNiner:如果您知道得更清楚,请更新信息等。继续编辑答案。它可能在7年前就有效(正确)。