При использовании LIKE в SQL-запросе не получается найти данные с кириллицей?

При использовании LIKE в SQL-запросе не получается найти данные с кириллицей.
Запрос примерно следующего типа:
SELECT surname FROM clients WHERE surname LIKE '$symbol%'

Скорее всего проблема в том, что вместо например буквы "Г", в запрос попадает "%D0%93".

При создании подключения к DB "charset=utf8" было указанно.
$dsn = 'mysql:host=' . $this->config->getHOST_DB() . ';dbname=' . $this->config->getNAME_DB() . ';charset=utf8';
  • Вопрос задан
  • 1026 просмотров
Решения вопроса 1
@Vikkiners Автор вопроса
Сам решил проблему.
Поскольку данные попадают из URL в контроллер, то в адресной строке происходит перекодировка "кириллициных знаков"(спасибо тебе Иосиф Бродский), соответственно, чтобы в запрос попала кириллица, а не %D0%93, нужно ее декодировать с помощью функции urldecode().
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
нужно ее декодировать с помощью функции urldecode().

Не нужно.
ПХП сам прекрасно декодирует входящие данные.
И если у тебя в переменной url кодирование, это начит что ты сам занимаешься какими-то извращениями в своем коде.

И надо не раскодировать данные, а убирать лишнее кодирование.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы