Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PHP Zeichenfolgen mit einfachen Anführungszeichen sicher in MySQL einfügen?

Wie kann ich mit PHP Zeichenfolgen mit einfachen Anführungszeichen sicher in MySQL einfügen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 15:59:12587Durchsuche

How Can I Safely Insert Strings with Single Quotes into MySQL Using PHP?

Einfache Anführungszeichen in PHP für MySQL-Einfügungen maskieren

Das Einfügen von Daten in eine MySQL-Datenbank erfordert häufig den Umgang mit Zeichenfolgen, die Sonderzeichen enthalten. Der Umgang mit einfachen Anführungszeichen kann besonders schwierig sein.

Das Problem

Es wurde ein Szenario beschrieben, in dem zwei SQL-Anweisungen verwendet wurden, um Daten aus einem Formular einzufügen und zu verarbeiten. Die erste Anweisung, die zum Einfügen von Daten in die Datenbank verwendet wurde, funktionierte ohne Probleme. Die zweite Anweisung, die Daten abgerufen und eine E-Mail ausgelöst hat, schlug jedoch mit einem MySQL-Fehler fehl, wenn der Name ein einfaches Anführungszeichen enthielt (z. B. „O'Brien“).

Die Lösung

Die Lösung besteht darin, die in die Datenbank eingefügten Zeichenfolgen zu maskieren. Zu diesem Zweck stellt PHP die Funktion mysql_real_escape_string() zur Verfügung. Es ersetzt Zeichen wie einfache Anführungszeichen durch ihre maskierten Entsprechungen und verhindert so Fehler und Datenbeschädigungen.

Warum das unterschiedliche Verhalten?

Der Grund für das unterschiedliche Verhalten zwischen den beiden Anweisungen liegt wahrscheinlich an der Verwendung von magic_quotes_gpc. Diese PHP-Konfiguration maskiert automatisch Zeichenfolgen, die aus $_GET, $_POST und $_COOKIES gesammelt wurden. In der ersten Anweisung wurden die Daten direkt aus dem Formular erfasst und diese automatische Escape-Funktion wurde angewendet.

Als die Daten jedoch abgerufen und in die zweite Anweisung eingefügt wurden, wurden sie nicht mehr maskiert. Infolgedessen verursachte das einfache Anführungszeichen im Namen den MySQL-Fehler. Durch die Verwendung von mysql_real_escape_string() können beide Zeichenfolgen ordnungsgemäß maskiert werden, um sicherzustellen, dass Sonderzeichen korrekt verarbeitet werden und die Datenintegrität gewahrt bleibt.

Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP Zeichenfolgen mit einfachen Anführungszeichen sicher in MySQL einfügen?. 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