Questo
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
non è corretto. Hai una stringa ('%'
) seguito da una chiamata di funzione (LOWER()
) seguito da un'altra stringa, e sono semplicemente seduti lì - nessuna logica di connessione, nessuna concatenazione, bla bla bla .
Dovrebbe essere
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
E per impostazione predefinita, i confronti MySQL NON fanno distinzione tra maiuscole e minuscole, a meno che non si forzi un binary
confronto o stai utilizzando una confronto con distinzione tra maiuscole e minuscole sul tuo db/tabella.