To
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
jest nieprawidłowe. Masz ciąg ('%'
), po którym następuje wywołanie funkcji (LOWER()
).
Powinno być
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
I domyślnie w porównaniach mysql nie jest rozróżniana wielkość liter, chyba że wymusisz binary
porównania lub używasz sortowania z rozróżnianiem wielkości liter w bazie danych/tabeli.