dedlfix: Frage zu mysql_real_escape_string

Beitrag lesen

echo $begrüßung;

Ich wollte meine DB etwas besser absichern und habe mit mysql_real_escape_string angeschaut. Jetzt frage ich mich, ob das "escapen" nicht einfacher zu bewerkstelligen ist. Es stört mich, dass ich die DB-Verbindung bereits vorhanden sein muss. Warum muss das sein?

Das muss für die Kodierungen UTF-8 und die ISO-8859-x-Familie eigentlich nicht sein, aber es gibt Kodierungen (mindestens eine asiatische), bei denen sind die Zeichen mit Sonderbedeutung nicht eineindeutig Bytewerten zugeordnet. Eine Behandlung muss deshalb unter Berücksichtigung der auf der Client-Verbindung vereinbarten Kodierung erfolgen, wenn man nicht "halbe Zeichen" (ein Byte eines aus mehreren Bytes bestehenden Zeichens) behandeln will.

Es gibt die Funktion mysql_escape_string(), die die Verbindungskodierung nicht beachtet und deswegen auch nicht auf einer hergestellten Verbindung besteht. Sie ist für ISO-8859-x und UTF-8 verwendbar, aber aufgrund der oben erwähnten Problematik als deprecated eingestuft.

echo "$verabschiedung $name";