Как игнорировать регистр в MySQL на кириллице?

Делаем телефонный справочник с поиском.
Все работает, все ищет, все отлично.
Не ищет только если регистр не совпадает.
Уже перепробовал и UPPER и LOWER, COLLATE в запросе вообще не работает, вся база создана заново на utf8_general_ci
Запрос выглядит так:

for ($i=0; $i<count($arr); $i++) {
        $arr[$i]= "'%" .$arr[$i] . "%'"; //Добавляем необходимые спецсимволы для поиска в MySQL
    }

    if ($search_field != null) {
        if ($link->connect_error) { //Подключаемся к базеd
            die('Connection error (' . $link->connect_errno . ')' . $link->connect_error . "\n");
        } else {
        
            echo "<script>console.log('Database has connected.');</script>";
            

            for ($i=0; $i<count($arr); $i++) { //Подготавливаем запрос
                $query = "SELECT * FROM phonebook WHERE" 
                . " surname LIKE". $arr[$i]  
                . " OR name LIKE" . $arr[$i] 
                . " OR middlename LIKE" . $arr[$i]
                . " OR city LIKE" . $arr[$i]
                . " OR bdate LIKE" . $arr[$i]
                . " OR position LIKE" . $arr[$i]
                . " OR depart LIKE" . $arr[$i]
                . " OR mobile LIKE" . $arr[$i]
                . " OR workphone LIKE" . $arr[$i]
                . " OR email LIKE" . $arr[$i]
                . " OR address LIKE" . $arr[$i]
                . " OR company LIKE" . $arr[$i];
                echo $query;  //Проверка запроса
            }

Вот что видит sql:
SELECT * FROM phonebook WHERE surname LIKE'%исмоилов%' OR name LIKE'%исмоилов%' OR middlename LIKE'%исмоилов%' OR city LIKE'%исмоилов%' OR bdate LIKE'%исмоилов%' OR position LIKE'%исмоилов%' OR depart LIKE'%исмоилов%' OR mobile LIKE'%исмоилов%' OR workphone LIKE'%исмоилов%' OR email LIKE'%исмоилов%' OR address LIKE'%исмоилов%' OR company LIKE'%исмоилов%'



Если вписать Исмоилов, то все находит без проблем, как и "смоилов".. Проблема вроде известная, но на всех форумах с динозаврами ни один совет не помог.
В PHPmyadmin все работает исправно, из чего вывод - у меня кривой скрипт.
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
В PHPmyadmin все работает исправно, из чего вывод - у меня кривой скрипт.

Очевидно же, что проблема, всё таки в разных кодировках.
1. Проверьте кодировку своего файла
2. Проверьте кодировку страницы, которая отправляет данные для массива $arr
Везде должна быть такая же как в базе!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 20:24
10000 руб./за проект
24 апр. 2024, в 19:51
1000 руб./за проект