これ
...snip... ) LIKE '%' LOWER(:wildcard) '%' OR ...snip
間違っている。文字列があります('%'
)の後に関数呼び出し(LOWER()
)の後に別の文字列が続き、それらはただそこに座っています-接続ロジック、連結、何とか何とか何とか。
あるべきです
... LIKE CONCAT('%', LOWER(:wildcard), '%') OR ...
また、デフォルトでは、binary
を強制しない限り、mysqlの比較では大文字と小文字が区別されません。 比較、またはデータベース/テーブルで大文字と小文字を区別する照合を使用しています。