Heim >Datenbank >MySQL-Tutorial >Wie überwindet man MySQL-Syntaxfehler, die durch Apostrophe in eingefügten Daten verursacht werden?
MySQL-Syntaxfehler beim Einfügen von Daten mit Apostrophen
Beim Versuch, Daten mithilfe einer INSERT-Abfrage in eine MySQL-Datenbank einzufügen, kann es zu einem Fehler kommen Fehler, wenn die Daten Apostrophe (einfache Anführungszeichen) enthalten. Dieser Fehler äußert sich typischerweise in einem Syntaxproblem im Zusammenhang mit den angegebenen Daten.
Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's','Corn Flakes 170g','$ 15.90','$ 15.90','$ 14.10','--')' at line 1MySQL Update Error:
Erklärung:
In MySQL werden Apostrophe als Trennzeichen für Zeichenfolgenwerte verwendet. Wenn ein Apostroph innerhalb einer Zeichenfolge erscheint, muss er mit einem Backslash () maskiert werden, um ihn vom Trennzeichen zu unterscheiden. Dadurch wird sichergestellt, dass der MySQL-Parser versteht, dass das Apostroph Teil der Zeichenfolge und nicht das Trennzeichen ist.
Lösung:
Um dieses Problem zu beheben, maskieren Sie alle Apostrophe im Geben Sie die Daten, die Sie einfügen möchten, an, indem Sie vor jedem Apostroph einen Backslash hinzufügen. Anstatt beispielsweise die Zeichenfolge „Kellog’s“ einzufügen, würden Sie „Kellogg’s“ einfügen. Indem Sie das Apostroph maskieren, weisen Sie MySQL an, es als Teil des String-Werts und nicht als Trennzeichen zu behandeln.
Zusätzliche Lösung (mit mysql_real_escape_string):
Wenn Sie Wenn Sie PHP verwenden, um eine Verbindung zu MySQL herzustellen, können Sie die Funktion mysql_real_escape_string() verwenden, um alle Sonderzeichen, einschließlich Apostrophe, in Ihren Daten automatisch zu maskieren, bevor Sie sie in die Datenbank einfügen. Diese Funktion stellt sicher, dass Ihre Daten zum Einfügen richtig formatiert sind und verhindert SQL-Injection-Angriffe. Hier ist eine Beispielfunktion mit mysql_real_escape_string():
<code class="php">function insert($database, $table, $data_array) { // ... (Rest of the code omitted for brevity) // Escape apostrophes in data values foreach ($data_array as $key => $value) { $tmp_dat[] = "'".mysql_real_escape_string($value)."'"; } // ... (Rest of the code omitted for brevity) }</code>
Das obige ist der detaillierte Inhalt vonWie überwindet man MySQL-Syntaxfehler, die durch Apostrophe in eingefügten Daten verursacht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!