Heim > Datenbank > MySQL-Tutorial > Wie fügt man mit PHP einfache Anführungszeichen sicher in MySQL-Datenbanken ein?

Wie fügt man mit PHP einfache Anführungszeichen sicher in MySQL-Datenbanken ein?

Patricia Arquette
Freigeben: 2024-12-01 16:30:15
Original
612 Leute haben es durchsucht

How to Safely Insert Single Quotes into MySQL Databases Using PHP?

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', ...)");
Nach dem Login kopieren

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')");
Nach dem Login kopieren

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')");
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage