无法删除Codeigniter中的行

时间:2018-09-24 11:09:12

标签: php mysql codeigniter

我想当CodeIgniter中的timing日期小于当前日期时,它应该自动删除行。 我有一个名为doctor的表。字段为id(int)crated_at(timestamp) timings(varchar)name(varchar)

我通常以mm/dd/yyyy格式插入时间。我希望当日期小于当前日期时,应删除行。

模型

public function delete_book(){
    $date  = date("m/d/Y");
    $this->db->where("timings < (".$date." - INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}

请让我知道我的代码的错误

4 个答案:

答案 0 :(得分:1)

使用此

$this->db->where("timings < DATE_SUB(curdate(), INTERVAL 1 DAY)",NULL,FALSE);
$this->db->delete("doctors");

答案 1 :(得分:0)

您应该使用MySql的NOW()函数。 NOW()返回系统日期,它也与MySql查询兼容。

public function delete_book(){
    //$date  = date("m/d/Y");
    $this->db->where("timings < (NOW() - INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}

答案 2 :(得分:0)

工作可能会使用

$this->db->where('timings BETWEEN NOW() - INTERVAL 1 DAY AND NOW()', "", false);
$this->db->delete("doctors");

希望完全有效。

答案 3 :(得分:-1)

您可以使用DATE_SUB功能

public function delete_book(){
    $this->db->where("timings < DATE_SUB(curdate(), INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}

上面产生的函数查询是:-

DELETE FROM `doctors` WHERE `timings` < DATE_SUB(curdate(), INTERVAL 1 DAY)