1

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

我怎样才能做到这一点?

4

2 回答 2

2

搜索后我找到了答案,它将删除'!' 从查询中退出符号

$this->db->like('category_name', $string,'both',false);
于 2018-10-02T11:51:04.210 回答
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 = '';
于 2015-06-23T11:18:08.753 回答