试图用codeigniter更新db中的一行,只是做了+1,但似乎并不成功。

问题描述 投票:0回答:1

我调用我的函数,然后检查里面是否有行,如果有,我只是想把 "访问量 "的值更新为1,我是这样尝试的。

if($row){

            $data = array(
                'num_visitas' => 'num_visitas + 1',
                'fecha_ultima_visita' => $fecha_ultima_visita
            );


            $this->db->where('email', $email);
            $this->db->set($this->loyaltyTable, $data);
            return ($this->db->affected_rows() != 1) ? false : true;

虽然没有出现错误,但也没有更新值。我试着用 $this->db->update()$this->db->set() 但似乎都没有用。我是不是遗漏了什么?

php codeigniter-3
1个回答
0
投票
$this->db->where('email', $email);
$this->db->set('num_visitas', 'num_visitas+1', FALSE);
$this->db->set('fecha_ultima_visita', $fecha_ultima_visita);
$this->db->update($this->loyaltyTable);

0
投票

你可以使用像下面这样的简单查询,codeigniter会添加引号,所以它不能与列+1一起使用,请尝试下面的查询。

$query = $this->db->query("UPDATE ".$this->loyaltyTable." SET num_visitas = num_visitas + 1 , fecha_ultima_visita= '$fecha_ultima_visita' WHERE email = '$email'");
© www.soinside.com 2019 - 2024. All rights reserved.