Einfache Anführungszeichen in PHP für die MySQL-Einfügung maskieren
Beim Einfügen von Daten in eine MySQL-Datenbank mit PHP ist es wichtig, alle einfachen Anführungszeichen zu maskieren (') in den Daten, um unerwartetes Verhalten zu verhindern. Ein häufiges Problem tritt auf, wenn in einer MySQL-Anweisung einfache Anführungszeichen verwendet werden und beim zweiten Einfügeversuch Fehler auftreten.
Abfrage 1
Die erste Abfrage, die Informationen aus a einfügt Formular in die Tabelle job_log einzufügen, funktioniert ordnungsgemäß, da das einfache Anführungszeichen im Feld booking_name nicht explizit maskiert wird. Dies ist jedoch keine empfohlene Vorgehensweise.
$result = mysql_query("INSERT INTO job_log (order_id, ...) VALUES ('$order_id', '$supplier_id', ..., '$booking_name', '$address', ...)");
Abfrage 2
Die zweite Abfrage, die Daten aus der Datenbank in die Tabelle „message_log“ einfügt, schlägt fehl, wenn die Das Feld „primary_contact“ enthält ein einfaches Anführungszeichen. Dies liegt daran, dass das einfache Anführungszeichen in der Zeichenfolge row->primary_email einen MySQL-Syntaxfehler auslöst.
$query = mysql_query("INSERT INTO message_log (order_id, ...) VALUES ('$order_id', '".date('Y-m-d H:i:s', time())."', '$email', '$from', ..., '$row->primary_email' ,..., '$message_content', '1')");
Escape-Lösung mit mysql_real_escape_string
Um dieses Problem zu beheben, Es ist wichtig, alle einfachen Anführungszeichen in den Zeichenfolgenwerten, die in die Datenbank eingefügt werden, ordnungsgemäß zu maskieren. Dies kann mit der Funktion mysql_real_escape_string() erreicht werden, die den String maskiert, um der MySQL-Syntax zu entsprechen.
$esc_primary_email = mysql_real_escape_string($row->primary_email); $query = mysql_query("INSERT INTO message_log (order_id, ...) VALUES ('$order_id', '".date('Y-m-d H:i:s', time())."', '$email', '$from', ..., '$esc_primary_email' ,..., '$message_content', '1')");
Durch das Escapen des einfachen Anführungszeichens mit mysql_real_escape_string() wird die Abfrage erfolgreich ausgeführt, ohne dass Fehler auftreten, was gewährleistet das korrekte Einfügen der Daten in die Datenbank.
Das obige ist der detaillierte Inhalt vonWie fügt man mit PHP einfache Anführungszeichen sicher in MySQL-Datenbanken ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!