In PHP werden häufig zwei Funktionen zum Escapen von Zeichenfolgen verwendet, bevor sie in Datenbankabfragen verwendet werden: mysql_real_escape_string und addslashes. Obwohl beide ähnliche Zwecke erfüllen, gibt es feine Unterschiede, die berücksichtigt werden müssen.
fügt Schrägstriche hinzu
Diese Funktion fügt Backslashes vor bestimmten Zeichen hinzu: ' (einfaches Anführungszeichen), " (doppeltes Anführungszeichen). ), (Backslash) und NUL (das NULL-Byte) Es trägt zum Schutz vor SQL-Injection-Angriffen bei, indem verhindert wird, dass diese Zeichen als Teil von interpretiert werden query.
mysql_real_escape_string
Diese in PHP 7.3.0 veraltete Funktion wurde speziell für MySQL entwickelt. Sie fügt Backslashes zu Zeichen hinzu, die von MySQL maskiert werden müssen x00, n, r, x1a, ' (einfaches Anführungszeichen) und " (doppeltes Anführungszeichen). Es ist jedoch wichtig zu beachten, dass die tatsächliche Implementierung von Escapezeichen in MySQL zusätzliche Zeichen beinhalten kann.
Bedeutung von Zeichen ohne Escapezeichen in mysql_real_escape_string
Der Hauptunterschied zwischen den beiden Funktionen liegt in den Zeichen, die nicht durch Addslashes maskiert werden. Dazu gehören:
Empfehlung
Es wird generell empfohlen, die Escape-Funktion Ihres Datenanbieters zu verwenden, z. B. mysql_real_escape_string, anstelle von Addslashes. Dadurch wird sichergestellt, dass die Zeichenfolge entsprechend für die jeweilige verwendete Datenbank vorbereitet wird. Obwohl mysql_real_escape_string veraltet ist, ist es wahrscheinlich, dass neuere Versionen von PHP über ähnliche Ersatzfunktionen für Escapezeichenfolgen in MySQL-Abfragen verfügen.
Das obige ist der detaillierte Inhalt vonWarum mysql_real_escape_string anstelle von Addslashes für MySQL-Abfragen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!