2015-06-23 14 views
-1

codeigniter 3.0 like query add ESCAPE'!'codeigniter 3.0 like query add ESCAPE'!'就像

例如:

$this->db->select('*'); 
    $this->db->from('sample'); 
    $this->db->like('col','val%val2'); 
    $this->db->get()->result_array(); 

CI产生像下面

SELECT * FROM `sample` WHERE `col` LIKE '%val!%val2%' ESCAPE '!' 

查询,但我预期

SELECT * FROM `sample` WHERE `col` LIKE '%val%val2%' 

我怎样才能做到这一点?

+0

我想要一个更礼貌的问题,而不是一个需求。 – Dakkaron

+0

你可以请提高你的quesiton.Its很难理解,或者你可能想这个'$ this-> db-> like('col','val1%val2%val3','both',true);' –

+0

我编辑的问题,请检查.. –

回答

0

在CI-2它产生的结果如预期的那样。但CI-3生产结果如你所说。可能应该改进。

经过一番研究,我发现了解决方案,你需要设置一些配置里面system/database/DB_driver.php

打开的DB_driver.php转到行340和347,你会发现这样的

protected $_like_escape_str = " ESCAPE '%s' "; 

/** 
* ESCAPE character 
* 
* @var string 
*/ 
protected $_like_escape_chr = '!'; 

改变他们清空如下

protected $_like_escape_str = ""; 

/** 
* ESCAPE character 
* 
* @var string 
*/ 
protected $_like_escape_chr = ''; 
+0

它可能工作,但我不能chnage我的系统文件夹文件。 –