Из-за некоторой ошибки или моего отсутствия знаний в ODBC-соединениях я не могу использовать CodeIgniter
$this->db->like();
(Если вы действительно хотите знать, почему я не могу его использовать, см. Мою другую тему здесь .)
Как заменить
$this->db->like("name", 'a', 'after');
с другим безопасным кодом?
РЕДАКТИРОВАТЬ:
Очевидно, я не был ясен в своем описании.
Я ЗНАЮ, как использовать «like ()». Моя проблема в том, что я НЕ МОГУ ее использовать из-за других обстоятельств. Мне нужна замена «like ()».
Я знаю, что могу это сделать:
$this->db->where("name LIKE 'a%'", NULL, FALSE);
но это было бы небезопасно.
EDIT 2:
Возможно, это может сработать:
$user_input = "a"; //Escape input $escaped_input = $this->db->escape($user_input); //add a %-sign to the end of the escaped input $like_input = substr_replace($escaped_input, "%", -1, 0) $this->db->where("name LIKE " . $like_input, NULL, FALSE);
Но я чувствую, что это не помешает инъекциям sql.