Wenn Du nicht willst, dass der Benutzer selber die Ähnlichkeitssuche verwendet, obwohl Du aber im Hintergrund ein 'LIKE' einsetzt, dann musst Du die Bentuzereingaben escapen. Standardzeichen dafür wäre dann wieder der Backslash. Das kannst Du in Deiner Schnittstelle machen, indem Du jedes Vorkommen von '%' und '_' gegen '%' und '\_' in den Usereingaben austauschst. Vorher solltest Du aber schauen, ob bereits '' enthalten sind, denn manche User sind pfiffig.
Wenn '' allerdings zum Datentrom gehört, dann musst Du ein anderes Escape-Zeichen wählen und MySQL das durch die Klausel "ESCAPE 'Z'" mitteilen, wobei 'Z' hier für das von Dir gewählte Escape-Zeichen steht.
Ich hab die beiden Zeichen jetzt mal mit str_replace ersetzen lassen. Funktioniert wunderbar, Einträge, die sie enthalten, werden nun auch gefunden. Backslashes sollen in den Einträgen aber auch vorkommen dürfen und ich hab schon selber gesehen, dass das Probleme macht, vor allem bei Kombinationen mit Joker-Zeichen, wie "%".
Wie löst man sowas denn am elegantesten? Ist es legitim, ein Zeichen als Escape-Zeichen zu wählen, das in der Praxis mit hoher Wahrscheinlichkeit nicht vorkommen wird? Oder gibt es doch eine Möglichkeit, dass die Suche mit allen Zeichenketten gleich funktioniert?
Danke nochmal für deine Hilfe,
Esteba