codeigniter sql查询不能处理where子句中的特殊字符

aiqt4smr  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(289)

我在codeigniter中生成了一个查询,它正在用一个符号(&)搜索like。当直接查询数据库时,它生成的查询可以很好地工作,但是codeigniter不会返回任何结果。
我在codeigniter中有以下sql查询:

$where = array('name' => '&');
$this->db->select('*, organisations.postcode, organisations.id ');
$this->db->limit(20, 0);
$this->db->from('organisations');
$this->db->join('contacts','contacts.id = organisations.main_contact_id','left');
$this->db->like($where);
$query=$this->db->get();

这将创建查询:

SELECT *, `organisations`.`postcode`, `organisations`.`id` FROM `organisations` LEFT JOIN `contacts` ON `contacts`.`id` = `organisations`.`main_contact_id` WHERE name LIKE '%&%' ESCAPE '!' LIMIT 20

查询工作,codeigniter不工作。

kyxcudwk

kyxcudwk1#

你可以用 ESCAPE 作为:

WHERE name LIKE '%\!&%' ESCAPE '\!'

rextester演示

相关问题