我无法在codeigniter中运行更新查询

时间:2014-10-07 06:45:24

标签: php mysql codeigniter

function updateVisitsStatus($today){
        /*
         * 
        $this->db->select('exp_datetime, status_id');
        $this->db->from('visits');
        $this->db->where('exp_datetime <', $today);
        $this->db->where('status_id', 0);
        echo "<pre>"; print_r($this->db->get()->result());exit;
         * 
         */

        $this->db->where('exp_datetime <', $today);
        $this->db->where('status_id', 0);
        $this->db->update('visits', 'status_id = -4 ');
    }

评论的查询打印具有给定条件的两条记录。因此,查询应该使用字段status_id中的新值更新两个记录,但实际上并没有。

在这个过程中我缺少什么?

2 个答案:

答案 0 :(得分:2)

您必须将值作为数组或对象传递给函数update。试试,

// define array of values
$data = array(
               'status_id' => -4
            );
$this->db->where('exp_datetime <', $today);
$this->db->where('status_id', 0);
$this->db->update('visits',$data);

答案 1 :(得分:1)

试试这个

$data = array(
          'status_id' => -4
         );
$this->db->where(" exp_datetime < '".$today."'");
$this->db->where('status_id', 0);
$this->db->update('visits',$data);