Ich programmiere gerade eine MySQL-Datenbanksuche in PHP.
Ich gebe z. B. folgenden Suchbegriff ein:
In dem Suchbegriff sollen nur "?" und "*" als Platzhalter zugelassen sein und dann entsprechend in PHP für MySQL umgewandelt werden. D. h. ich möchte "_" escapen, damit das nicht als Platzhalter verwendet wird, ebenso "%". "*" und "?" sollen in "%" bzw. "_" umgewandelt werden und damit als Platzhalter dienen.
Mein PHP-Code lautet wie folgt:
Ergebnis:
Das ist aber falsch! Denn das
Wie löse ich das Problem? Ich habe schon versucht, die Programmierzeilen irgendwie umzustellen, aber es haut nicht hin.
Ich gebe z. B. folgenden Suchbegriff ein:
_bla*%bla?
In dem Suchbegriff sollen nur "?" und "*" als Platzhalter zugelassen sein und dann entsprechend in PHP für MySQL umgewandelt werden. D. h. ich möchte "_" escapen, damit das nicht als Platzhalter verwendet wird, ebenso "%". "*" und "?" sollen in "%" bzw. "_" umgewandelt werden und damit als Platzhalter dienen.
Mein PHP-Code lautet wie folgt:
Ergebnis:
"%\\_bla%\\%bla_%"
Das ist aber falsch! Denn das
mysql_real_escape_string
escaped die Backslashes ("\"), was das Escapen der Platzhalter wieder aufhebt (oder nicht?).Wie löse ich das Problem? Ich habe schon versucht, die Programmierzeilen irgendwie umzustellen, aber es haut nicht hin.