Codeigniter - как запрос не работает со строкой поиска - PullRequest
0 голосов
/ 06 сентября 2018

В своей функции PHP - Codeigniter () я дал следующую команду:

function get_cust($search='David')
{
$query = 'select pp.first_name from Cust pp where'; 
$query .= ' pp.first_name LIKE "%'.escape_like_str($search).'%")';
print_r(mysql_real_escape_string($query));
}

Но пока я выполнил вывод в браузере:

select pp.first_name from Cust pp where pp.first_name LIKE 'Úvid%'

Это так или иначе, так что я могу получить это как:

select pp.first_name from Cust pp where pp.first_name LIKE '%David%'

Я также пытался использовать addslashes(), mysql_real_escape_string(). У кого-нибудь есть идеи о том, как изменить 'Úvid%', чтобы он стал '%David%' Я использую PHP 5.4 на моей локальной машине, поэтому я не могу использовать mysqli.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Я рекомендую использовать построитель запросов в Codeigniter. Вы можете найти документацию как здесь . Это будет выглядеть так:

$name = 'David';

$this->db
  ->select('pp.first_name')
  ->like('pp.first_name', $name, 'both')
   >get('Cust');
0 голосов
/ 06 сентября 2018

Все хорошо с вашим кодом. %Da является html-сущностью .

Ú & Uacute; % DA Ú Capital U, острый акцент

Итак, это просто проблема с выводом данных, внутренне ваш текст запроса правильный . Попробуйте другую строку в качестве поискового запроса, не начиная с Da, или просто выполните запрос mysql и посмотрите его результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...