Php 如何在指定时间自动清空表格

Php 如何在指定时间自动清空表格,php,mysql,codeigniter,Php,Mysql,Codeigniter,当时间为23.59时,我需要删除表中的所有记录,我有以下查询: function delChat() { $date = date('H:i'); $this->db->where(dimasukkan, '23:59'); $this->db->delete('chat'); } 但是什么也没发生请注意,我不懂PHP,因此无法提供工作代码。不过,我会尽力帮忙的 首先,你的问题模棱两可。您的意思是希望在每天23:59小时从表中删除所有记录,还是必

当时间为23.59时,我需要删除表中的所有记录,我有以下查询:

function delChat() {
    $date = date('H:i');
    $this->db->where(dimasukkan, '23:59');
    $this->db->delete('chat');
}

但是什么也没发生

请注意,我不懂PHP,因此无法提供工作代码。不过,我会尽力帮忙的

首先,你的问题模棱两可。您的意思是希望在每天23:59小时从表中删除所有记录,还是必须删除时间戳为23:59小时的所有记录

如果您想在每天23:59小时清空表格,a
cron
作业将是正确的选择(正如一些评论已经建议的那样)

cron
作业可以在Linux/Unix系统上使用;另一种选择是
at
。在Windows下,您可以使用任务计划程序定期运行作业

在任何情况下,请注意,您实际上无法预测手术需要多长时间。可能它仍然会在00:00时运行,甚至第二天00:01时运行,这最终会给您带来麻烦

如果要删除时间戳或
日期
列为23:59小时的每一行,
您的代码有一些问题:


  • 您的
    where
    语句是错误的。这里比较的是一个正态变量和一个常数。我不知道PHP/MySQL在这种情况下在做什么,但它肯定不是您所期望的。如果您想将例如
    date
    列与该常量进行比较,则必须这样做:
    。。。其中('date','23:59')

  • 几乎可以肯定,您的
    date
    列或时间戳没有包含所需格式的日期/时间。因此,如果要将
    hour:minute
    date
    或timestamp列进行比较,首先必须从中提取小时和分钟,并将其连接到所需的格式(或者MySQL已经为此提供了适当的函数),然后将结果与字符串常量进行比较


请注意,我不懂PHP,因此无法提供工作代码。不过,我会尽力帮忙的

首先,你的问题模棱两可。您的意思是希望在每天23:59小时从表中删除所有记录,还是必须删除时间戳为23:59小时的所有记录

如果您想在每天23:59小时清空表格,a
cron
作业将是正确的选择(正如一些评论已经建议的那样)

cron
作业可以在Linux/Unix系统上使用;另一种选择是
at
。在Windows下,您可以使用任务计划程序定期运行作业

在任何情况下,请注意,您实际上无法预测手术需要多长时间。可能它仍然会在00:00时运行,甚至第二天00:01时运行,这最终会给您带来麻烦

如果要删除时间戳或
日期
列为23:59小时的每一行,
您的代码有一些问题:


  • 您的
    where
    语句是错误的。这里比较的是一个正态变量和一个常数。我不知道PHP/MySQL在这种情况下在做什么,但它肯定不是您所期望的。如果您想将例如
    date
    列与该常量进行比较,则必须这样做:
    。。。其中('date','23:59')

  • 几乎可以肯定,您的
    date
    列或时间戳没有包含所需格式的日期/时间。因此,如果要将
    hour:minute
    date
    或timestamp列进行比较,首先必须从中提取小时和分钟,并将其连接到所需的格式(或者MySQL已经为此提供了适当的函数),然后将结果与字符串常量进行比较


如何在表中节省时间?您的
where()
语句错误,它必须是
where('column',$value)
并且您需要一个cron/task来完成此操作。当时间为23:59时,您是否需要自动删除记录,或者您需要手动执行查询并删除记录,其中时间从
您的\u date\u列='23:59'
?感谢各位重播,Kisaragi我的错,我刚刚更改了where部分,并且Oto我需要在每天的时间为23.59时自动删除。如何在表中节省时间?您的
where()
语句是错误的,它需要是
where('column',$value)
您需要一个cron/task来完成这项工作。您需要在23:59时自动删除记录,还是需要手动执行查询并删除时间从
您的日期列='23:59'
?感谢大家的重播,Kisaragi我的错,我刚刚更改了where部分,而Oto我需要在23.59 e时自动删除记录每天。