esto
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
Es incorrecto. Tienes una cadena ('%'
) seguido de una llamada de función (LOWER()
) seguido de otra cadena, y simplemente están sentados allí:sin lógica de conexión, sin concatenación, bla, bla, bla.
debería ser
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
Y por defecto, las comparaciones de mysql NO distinguen entre mayúsculas y minúsculas, a menos que fuerce un binary
comparación, o está utilizando una intercalación que distingue entre mayúsculas y minúsculas en su base de datos/tabla.