codeigniter 3.0喜欢查询添加ESCAPE'!'就像

时间:2015-06-23 08:19:37

标签: codeigniter php-5.5 codeigniter-3

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%' 

我怎样才能做到这一点?

2 个答案:

答案 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);