Toto
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
je nesprávné. Máte řetězec ('%'
) následované voláním funkce (LOWER()
) následovaný dalším řetězcem a oni tam jen sedí - žádná spojovací logika, žádné zřetězení, bla bla bla .
Mělo by to být
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
A ve výchozím nastavení se při porovnání mysql nerozlišují malá a velká písmena, pokud nevynutíte binary
porovnání, nebo používáte řazení rozlišující malá a velká písmena ve vaší db/tabulce.