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>
<code class="php">INSERT INTO message_log ... VALUES (...)</code>
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>
Zum Beispiel:
<code class="php">$escapedString = mysql_real_escape_string("O'Brien"); $query = mysql_query("INSERT INTO message_log ... VALUES ('$escapedString', ...");</code>
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!