При использовании 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';
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@Vikkiners Автор вопроса
Сам решил проблему.
Поскольку данные попадают из URL в контроллер, то в адресной строке происходит перекодировка "кириллициных знаков"(спасибо тебе Иосиф Бродский), соответственно, чтобы в запрос попала кириллица, а не %D0%93, нужно ее декодировать с помощью функции urldecode().
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@FanatPHP
Чебуратор тега PHP
нужно ее декодировать с помощью функции urldecode().

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

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

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

Войти через центр авторизации
Похожие вопросы
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект
04 апр. 2020, в 22:57
2000 руб./за проект