Найдено простое решение: регистронезависимый поиск для SQLite

Периодически мы сталкиваемся с проблемой, что в SQlite по умолчанию оператор LIKE регистрозависим.

Как же выйти из положения?
Причем стандартные решения не подходят...
Но мы нашли простой и действенный метод! Работает на любых хостингах!


Шаг1: задаем новую функцию (можно в конструкторе прописать)

$this->dbh->sqliteCreateFunction('U_LOWER', "u_strtolower", 1);


Шаг2: пишем SQL запрос

$sql = "SELECT * FROM items WHERE u_lower(name) LIKE ('%". mb_strtolower($search) ."%') ";


где видно, что мы:
добавили свою функцию к полю name u_lower
добавили mb_strtolower
Таким образом перевели в нижний регистр все!
Кстати если функции нет, то ее можно создать (и нужно):
if (!function_exists('u_strtolower')) {
function u_strtolower($str) {
return mb_strtolower($str, 'UTF-8');
}
}

Наши контакты:

Телефоны
+7 (967) 555-3771

e-mail:
info@unibix.ru - для справок, заявок, заказов
ofis@unibix.ru - для документов и бухгалтерии
marketing@unibix.ru - отдел маркетинга, рекламы и партнерства
vk: vk.com/unibix
Время работы:
Пн—Пт, 10:00—19:00
Адрес офиса
236000, г. Калининград, ул. Гагарина, дом 16Г, офис №11,
ООО "Юнибикс" (950метров от Королевских ворот, ориентир магазин Виктория)