Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PHP Zeichenfolgen mit einfachen Anführungszeichen sicher in MySQL einfügen?
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!