1

codeigniter 3.0 のような 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

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 に答える