Heim > Backend-Entwicklung > PHP-Tutorial > Wie entkomme ich einfache Anführungszeichen in PHP für die MySQL-Einfügung?

Wie entkomme ich einfache Anführungszeichen in PHP für die MySQL-Einfügung?

DDD
Freigeben: 2024-11-02 00:49:30
Original
975 Leute haben es durchsucht

How to Escape Single Quotes in PHP for MySQL Insertion?

Einfache Anführungszeichen in PHP für das Einfügen in MySQL maskieren

MySQL-Fehler können auftreten, wenn Daten, die einfache Anführungszeichen (') enthalten, in eine Datenbank eingefügt werden. Um dieses Problem zu lösen, ist es wichtig, einfache Anführungszeichen mithilfe geeigneter Techniken zu umgehen.

In Ihren Codeausschnitten verwenden Sie zwei INSERT-Abfragen, um Formulardaten zu Ihrer Datenbank hinzuzufügen:

<code class="php">INSERT INTO job_log ...
VALUES
(...)</code>
Nach dem Login kopieren
<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>
Nach dem Login kopieren
Nach dem Login kopieren

Abfrage 1:

Die erste Abfrage funktioniert ordnungsgemäß, ohne das einfache Anführungszeichen zu maskieren, da Sie wahrscheinlich magic_quotes_gpc verwenden, das Zeichenfolgen aus GET-, POST- und COOKIE-Variablen maskiert.

Abfrage 2:

Die zweite Abfrage schlägt fehl, wenn eine Zeichenfolge ein einfaches Anführungszeichen enthält, z. B. „O'Brien“. Im Gegensatz zur ersten Abfrage wurde die Zeichenfolge in der zweiten Abfrage nicht maskiert.

Um dieses Problem zu verhindern, sollten Sie mysql_real_escape_string() verwenden, um Zeichenfolgen zu maskieren, bevor Sie sie in die Datenbank einfügen. Dadurch werden vor einfachen Anführungszeichen Backslashes () eingefügt:

<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>
Nach dem Login kopieren
Nach dem Login kopieren

Zum Beispiel:

<code class="php">$escapedString = mysql_real_escape_string("O'Brien");
$query = mysql_query("INSERT INTO message_log ... VALUES ('$escapedString', ...");</code>
Nach dem Login kopieren

Zeichenfolgen mit Escapezeichen versehen:

Es ist eine gute Übung, dies zu tun Escape-Zeichenfolgen immer vor dem Einfügen in eine Datenbank, auch wenn keine Fehler auftreten. Dadurch werden SQL-Injection-Angriffe verhindert und die Datenintegrität sichergestellt. In PHP können Sie mysql_real_escape_string() oder die bindParam()-Methode der PDO-Bibliothek verwenden, um Strings effektiv zu maskieren.

Das obige ist der detaillierte Inhalt vonWie entkomme ich einfache Anführungszeichen in PHP für die MySQL-Einfügung?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage