强制不转义查询生成器 CI 3.1.8



我用codeigniter写了一个查询,需要在from()方法中取消转义子查询。我有一个复杂的查询,在这里我为您简化

$this->db->from("(SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,PER_UNIT,%') AS acme_filtered")
become:
SELECT * FROM (SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,`PER_UNIT`,%') AS acme_filtered

喜欢'%,PER_UNIT,%'变成的部分 LIKE '%, PER_UNIT ,%' 找不到数据,因为附加字符 ('( 将字符串换行。如何删除此字符以使查询向右转?

你可以这样做,但我不知道它的含义,因为它击败了逃逸系统。
小心使用它!

$this->db->from("(SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,PER_UNIT,%') AS acme_filtered");
// the rest of your "complex query" code here
$query = $this->db->get_compiled_select();
$query = str_replace('%, `', '%,', $query);
$query = str_replace('`, %', ',%', $query);
$result = $this->db->query($query);

最新更新