Когда у меня есть встроенный SQL-запрос, который содержит скобки в одном из значений поиска, я не получаю ожидаемый результат. Однако, если я выполню запрос к своей базе данных напрямую, я получу ожидаемый результат.
Кроме того, если мой поиск не содержит скобок, он вернет ожидаемый результат.
Функция модели CodeIgniter:
function get_submodels($params)
{
$sql = "SELECT DISTINCT(`a`.`submodel`), `a`.`model_id` FROM `models` AS `a`"
. "LEFT JOIN `manufacturers` AS `b` ON `a`.`manufacturer` = `b`.`manufacturer_id`"
. "WHERE `a`.`year` = ? AND `b`.`manufacturer` = ? AND `a`.`model` = ?"
. "ORDER BY `a`.`submodel` ASC;";
$query = $this->db->query($sql, $params);
return $query->result();
}
Пример рабочего запроса:
"... WHERE `a`.`year` = '2007' AND `b`.`manufacturer` = 'CHEVROLET' AND `a`.`model` = 'MONTE CARLO'"
Пример нерабочего запроса:
"... WHERE `a`.`year` = '2007' AND `b`.`manufacturer` = 'MERCEDES BENZ' AND `a`.`model` = 'CLK350 (W209)'"
Я использовал $ this-> db-> last_query (), и запрос отформатирован правильно. Даже при копировании последнего запроса, который не дал результатов, и непосредственном запуске его к базе данных, вы получите ожидаемый результат.