为什么codeigniter活跃记录' LIKE'不能在更新查询中工作?

时间:2015-08-21 05:19:55

标签: mysql codeigniter

$array=array(
 'amount'=>$this->input->post('netamt'),
 'trandate'=>$billdate,
 'crcode'=>$this->input->post('rcode')
  );
  $this->db->where('voucher',$this->input->post('billno'));
  $this->db->like('code','16','after');
  $this->db->update('tranachst',$array);

使用时显示此查询     echo $ this-> db-> last_query();

UPDATE `tranachst` SET `amount` = '717360', `trandate` = '2015-07-15', `crcode` = '311001' WHERE `voucher` = '15020'

这里的查询不起作用,为什么?

2 个答案:

答案 0 :(得分:1)

请尝试这个 -

我的例子 -

$this->db->where('faq_id', $id);
$this->db->where('question LIKE ', '%do%'); 
$this->db->update('admin_faqs', $data);

你的例子 -

$array=array(
 'amount'=>$this->input->post('netamt'),
 'trandate'=>$billdate,
 'crcode'=>$this->input->post('rcode')
  );
  $this->db->where('voucher',$this->input->post('billno'));
  $this->db->where('code LIKE ', '16%'); 
  $this->db->update('tranachst',$array);

在此代码中,您不需要使用之后,在参数之前请尝试这个..

答案 1 :(得分:0)

有些人有同样的问题,直到现在我还不知道为什么。但显然CI不支持上述活跃记录。

您可以使用$this->db->query()

function index(){
    $this->load->database();
    $data=array(
        'userlogin'=>'test'
    );
    $this->db->where('userlogin','xx');
    $this->db->where("email like 'xx'");
    $q=$this->db->update('master_user',$data);

}

类似的东西也起作用。 同一个问题:CodeIgniter Active Record 'like' ignoring 'where'