Hallo,
ich frage aus meiner MySQL-Datenbank Daten via LIKE ab.
Der Vergleichswert stammt direkt (natürlich escaped) aus User-Input und es muss case-insensitive verglichen werden. LIKE ist aber case-sensitive.
Also habe ich versucht:
Das funktioniert prinzipiell gut, aber LOWER() scheint im Gegensatz zu strtolower() Umlaute nicht korrekt umzuwandeln.
Alles geschieht in UTF-8. Wenn ich LOWER() und strtolower() weglasse dann werden auch Datensätze mit Umlauten gefunden (nur eben nicht case-insensitive).
Weiß jemand eine elegante Lösung?
ich frage aus meiner MySQL-Datenbank Daten via LIKE ab.
Der Vergleichswert stammt direkt (natürlich escaped) aus User-Input und es muss case-insensitive verglichen werden. LIKE ist aber case-sensitive.
Also habe ich versucht:
PHP Code:
'LOWER(myfield) LIKE "'.strtolower($userinput).'"'
Alles geschieht in UTF-8. Wenn ich LOWER() und strtolower() weglasse dann werden auch Datensätze mit Umlauten gefunden (nur eben nicht case-insensitive).
Weiß jemand eine elegante Lösung?
Comment