Escaping MySQL-Platzhalter
Auf einem älteren Server, den ich verwende und auf dem ich keine vorbereiteten Anweisungen verwenden kann, versuche ich derzeit, Benutzereingaben vollständig zu umgehen, bevor ich sie an MySQL sende. Dafür benutze ich die PHP-Funktionmysql_real_escape_string
.
Da diese Funktion den MySQL-Platzhaltern% und _ nicht entgeht, verwende ichaddcslashes
um auch diesen zu entkommen.
Wenn ich etwas sende wie:
test_test " '
in die Datenbank und dann lesen Sie es zurück die Datenbank zeigt:
test\_test " '
enn ich mir das ansehe, kann ich nicht verstehen, warum das _ einen vorangestellten Backslash hat, aber das "und" nicht. Da sie alle mit "und" maskiert sind, sollten sie alle gleich erscheinen, dh alle haben das Escape-Zeichen sichtbar oder alle haben es nicht sichtbar.
Sind die Fluchtwege automatisch auf @ überprüf
ann jemand das erkläre