2015-06-23 56 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我的系統文件夾文件。 –