Това
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
е неправилно. Имате низ ('%'
), последвано от извикване на функция (LOWER()
), последвано от друг низ, и те просто седят там - без свързваща логика, без конкатенация, бла-бла-бла .
Би трябвало да е
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
И по подразбиране сравненията на mysql СА независими от малки и големи букви, освен ако не наложите binary
сравнение, или използвате съпоставяне, чувствително към малки и големи букви на вашата db/таблица.