Ceci
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
est incorrect. Vous avez une chaîne ('%'
) suivi d'un appel de fonction (LOWER()
) suivi d'une autre chaîne, et ils sont juste assis là - pas de logique de connexion, pas de concaténation, bla bla bla .
Cela devrait être
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
Et par défaut, les comparaisons mysql SONT insensibles à la casse, sauf si vous forcez un binary
comparaison, ou vous utilisez un classement sensible à la casse sur votre db/table.