Codeigniter 3:删除所有超过 2 个月的行

Posted

技术标签:

【中文标题】Codeigniter 3:删除所有超过 2 个月的行【英文标题】:Codeigniter 3: delete all rows older than 2 months 【发布时间】:2016-12-18 21:57:45 【问题描述】:

我正在使用 codeigniter 3。我想从表“anwser”中删除所有超过 2 个月的行(mysql 表中的日期时间)。我没有收到错误。但不会删除任何行。 有什么建议吗?

型号:

    function delete_old_anwsers()

    $this->load->model('quiz_model');
    $this->db->where('datum <', 'strtotime('-2 month')');
    $this->db->delete('anwser');

控制器:

$this->quiz_model->delete_old_anwsers();

谢谢

解决方案:

    function delete_old_answer()

    $this->db->query("DELETE FROM answer WHERE datum < NOW() - INTERVAL 2 MONTH ");

【问题讨论】:

你可以试试$this-&gt;db-&gt;query("DELETE FROM answer WHERE datum &lt; DATE_SUB(NOW(), INTERVAL 2 MONTH)"); @Tpojka 谢谢! ' function delete_old_answer() $this->db->query("DELETE FROM answer WHERE datum 【参考方案1】:

您需要编写一个每天都会执行的 cron 作业。

在那里,您可以添加此查询,它将删除所有超过 2 个月的答案。

【讨论】:

【参考方案2】:

在 Active Record 中它将是:

$this->db->where('datum < DATE_SUB(NOW(), INTERVAL 60 DAY)');
$this->db->delete('anwser');

【讨论】:

以上是关于Codeigniter 3:删除所有超过 2 个月的行的主要内容,如果未能解决你的问题,请参考以下文章

定时备份mysql数据库任务

每天定时备份mysql数据库任务

从 codeigniter 2.1.3 中删除 index.php

在 codeigniter 中加入超过 2 个数据库表错误:1066

如何删除所有超过一年的 Git 远程分支?

审查超过 3 个月和最近 30 天内的脚本