Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wirkt sich das Escapezeichen in einfache Anführungszeichen in PHP manchmal nur auf MySQL-Einfügungen aus?

Warum wirkt sich das Escapezeichen in einfache Anführungszeichen in PHP manchmal nur auf MySQL-Einfügungen aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 11:55:29741Durchsuche

Why Does Escaping Single Quotes in PHP Only Affect MySQL Inserts Sometimes?

Einfache Anführungszeichen in PHP beim Einfügen in MySQL maskieren

Dieser Artikel befasst sich mit dem Problem der Escapezeichen in einfachen Anführungszeichen in PHP beim Einfügen von Daten in MySQL.

Der bereitgestellte Code demonstriert zwei SQL-Anweisungen: eine zum Einfügen von Formulardaten in eine Datenbank und die andere zum Abrufen von Daten, zum Senden einer E-Mail und zum Protokollieren von Transaktionsdetails. Der Fehler tritt auf, wenn in der zweiten Anweisung ein einfaches Anführungszeichen vorhanden ist, in der ersten jedoch nicht.

Der Unterschied im Verhalten ergibt sich aus der Möglichkeit, dass magic_quotes_gpc aktiviert wird. Diese Funktion maskiert Zeichenfolgen aus $_GET, $_POST und $_COOKIES. Wenn die Daten gespeichert und erneut abgerufen werden, werden sie möglicherweise nicht automatisch maskiert.

Um dieses Problem zu beheben, sollten Sie jede Zeichenfolge in beiden Snippets mit mysql_real_escape_string() maskieren.

Beispiel mit mysql_real_escape_string():

<code class="php">$order_id = mysql_real_escape_string($order_id);
$supplier_id = mysql_real_escape_string($supplier_id);
...</code>

Das Escapezeichen von Zeichenfolgen vor dem Einfügen in MySQL stellt sicher, dass einfache Anführungszeichen und andere potenziell problematische Zeichen korrekt behandelt werden, wodurch SQL-Injection-Schwachstellen und inkonsistente Abfrageausführung verhindert werden.

Das obige ist der detaillierte Inhalt vonWarum wirkt sich das Escapezeichen in einfache Anführungszeichen in PHP manchmal nur auf MySQL-Einfügungen aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn