Проблемы с кодировкой в PHP форме

178
27 августа 2018, 17:00

пытаюсь произвести поиск по БД, в которой хранятся данные на русском и украинском языках, в таблицах через phpnyadmin все выглядит красиво без "кракозябр" а вот сам запрос не выводит никаких результатов.

SELECT 
fi.film_name,
fi.film_format, 
fi.film_year, 
fi.film_id, 
group_concat(actor_name)
FROM film_info fi 
INNER JOIN film_actor USING(film_id) 
INNER JOIN actor_info USING(actor_id) 
WHERE fi.film_name LIKE {$search} GROUP BY film_id 

в sql phpmyadmin такая схема работает, выводит по украинскому запросу все корректно, но с php var_dump() показывает пустой масив. Попробывал просто вывести текст запроса, который передается БД, а там такое (см.скрин) Значит проблема с тем как Эти данные из формы передаются в переменную, и как это исправить? Заранее спасибо!

Answer 1

Видимо в настройках mysql кодировка по умолчанию не UTF-8.

Значит в вашем скрипте, перед выполнением запросов надо указать mysql, в какой кодировке будет работать скрипт, выполнив запрос:

SET NAMES 'utf8';
Answer 2

Проблема разрешилась, всё дело было в функции strtolower(), которая неадекватно ведет себя по отношению к кирилице. Заменив её на mb_strtolower() всё сразу же заработало. Спасибо добрым людям за помощь и извините за столь глупый вопрос!

READ ALSO
Цикл foreach внутри массива [дубликат]

Цикл foreach внутри массива [дубликат]

Данный вопрос уже был задан и имеет решение:

156
Указание href тэгу button

Указание href тэгу button

Я раньше указывал авторизацию с тэгом и тд а вот стала задача сделать это с тегом баттон но как с тегом не проканало( подскажите как это реализовать...

154
Как отправить Cookie в заголовке запроса

Как отправить Cookie в заголовке запроса

Копаюсь с сайтом фмс - http://servicesfms

202
Вывести текст между тегами <h1> и </h1> [дубликат]

Вывести текст между тегами <h1> и </h1> [дубликат]

На данный вопрос уже ответили:

185