SQL-запрос Codeigniter не работает со специальными символами в предложении WHERE - PullRequest
0 голосов
/ 12 октября 2018

У меня есть запрос, сгенерированный в codeigniter, который ищет подобное с амперсандом (&).Запрос, который он генерирует, прекрасно работает при непосредственном обращении к базе данных, но codeigniter не возвращает никаких результатов.

У меня есть следующий SQL-запрос в codeigniter:

$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 - нет.

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете использовать ESCAPE как:

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

Rextester Demo

...