我需要在时间为23.59时删除表中的所有记录,我有以下查询:
function delChat() {
$date = date('H:i');
$this->db->where(dimasukkan, '23:59');
$this->db->delete('chat');
}
但什么也没发生
答案 0 :(得分:2)
请注意,我不了解PHP,因此无法提供有效的代码。但是,我会尽力帮助。
首先,您的问题不明确。您是要每天23:59 h从表中删除所有记录,还是要删除所有时间戳是23:59 h的记录?
如果您想每天在23:59 h清空表,(因为有些评论已经提出),cron
工作将是正确的选择。
cron
作业可以在Linux / Unix系统上使用;替代方法是at
。在Windows下,您可以使用任务计划程序定期运行作业。
在每种情况下,请注意,您实际上无法预测该操作将花费多长时间。可能第二天00:00点甚至00:01点时它仍会运行,最终会给您带来麻烦。
如果要删除时间戳或date
列为23:59 h的每一行,您的代码会出现一些问题:
您的where
语句是错误的。您在此处将普通变量与常量进行比较。我不知道在这种情况下PHP / MySQL会做什么,但是这肯定不是您期望的。如果您想比较例如该常量的date
列中,您将必须使用以下方式:... where('date', '23:59')
。
几乎可以肯定,您的date
列或时间戳不包含所需格式的日期/时间。因此,如果您想将hour:minute
与date
或timestamp列进行比较,则必须首先从中提取小时和分钟,并将其连接到所需的格式(或者MySQL已经提供了一个适当的函数),然后将结果与您的字符串常量进行比较。