Hallo Leute
Ich hab ein kleines Problem. Der Titel ist leider nicht sehr treffend aber mir fällt momentan gerade nichts bessers ein:
Ich habe eine Klasse, in welcher meine Mysql-Funktionen sind. Jeder Query landet schlussendlich hier:
PHP-Code:
private function db_query($query_string) {
$query_string = htmlentities($query_string);
$request = mysql_query($query_string)
or die(Mysql::report_error("Query: ".mysql_error()."\n".$query_string));
return $request;
}
Das hat bis anhin gut geklappt, allerdings bekomme ich nun Probleme beim Login-Script:
Da meine User Namen mit Umlauten haben, muss ich das überprüfen. Die Eingabe Mäke ist beispielsweise als Mäke in der Datenbank abgelegt. Jedoch kann ich so keine Vergleichsoperatoren im Query-String benützen, da ein Grösser als (>) in > umgewandelt wird, was logischerweise in einem Error endet.
Ebenfalls habe ichs mit mysql_(real)_escape_string versucht, was auch kein befriedigendes Ergebnis geliefert hat. Aus "SELECT row FROM table WHERE name='row_name'" wurde "SELECT row FROM table WHERE name=\'row_name\'", was dann zu einem Fehler führte.
Hat jemand eine Idee, wie ich die Zeichenumwandlung von Umlaut x zu &xuml; mit gleichzeitiger Nicht-Umwandlung von < und > unter einen Hut bringe? Natürlich könnte ich einfach die Umlaute über str_replace manuel umwandeln. Ist das die einzige Lösung oder kennt ihr da eine gescheitere?
Gruss Igäl