Einfache Anführungszeichen in PHP für das Einfügen in MySQL umgehen
Beim Einfügen von Daten in eine MySQL-Datenbank aus PHP können Sonderzeichen wie einfache Anführungszeichen Fehler verursachen . Um dies zu verhindern, ist es wichtig, diese Zeichen zu maskieren, bevor Sie sie in die Abfrage einfügen.
Das in der Frage beschriebene Problem entsteht, weil Daten je nach Herkunft unterschiedlich erfasst und eingefügt werden. Abfrage 1 erfasst direkt Daten aus einem übermittelten Formular, wodurch möglicherweise einfache Anführungszeichen ohne Escapezeichen eingeführt werden. In Abfrage 2 werden die Daten jedoch zuerst aus der Datenbank extrahiert, wo einfache Anführungszeichen möglicherweise bereits maskiert wurden, wenn magic_quotes_gpc aktiviert war.
Die Lösung besteht darin, einfache Anführungszeichen in beiden Abfragen konsistent mit mysql_real_escape_string() zu maskieren. Diese Funktion maskiert Sonderzeichen und stellt die ordnungsgemäße Verarbeitung von einfachen Anführungszeichen sicher, auch wenn diese in den Daten vorkommen.
Beispiel:
<code class="php">$escaped_name = mysql_real_escape_string($name); $query = mysql_query("INSERT INTO message_log (order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status) VALUES ('$order_id', '" . date('Y-m-d H:i:s', time()) . "', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,' $row->secondary_email', '$subject', '$escaped_name', '1')");</code>
Durch konsistentes Escapen von einfachen Anführungszeichen in PHP vor dem Einfügen von Daten in MySQL , können Sie potenzielle Fehler verhindern und eine genaue Datenverarbeitung sicherstellen.
Das obige ist der detaillierte Inhalt vonWie entgeht man einfache Anführungszeichen für die MySQL-Einfügung in PHP richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!