codeigniter 3.0就像查询一样添加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 :(得分: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 = '';
答案 1 :(得分:0)
搜索后,我找到了答案,它将删除'!'从查询中退出签名
$this->db->like('category_name', $string,'both',false);