Heim >Datenbank >MySQL-Tutorial >Wie überwindet man MySQL-Syntaxfehler, die durch Apostrophe in eingefügten Daten verursacht werden?

Wie überwindet man MySQL-Syntaxfehler, die durch Apostrophe in eingefügten Daten verursacht werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 02:47:291032Durchsuche

How to Overcome MySQL Syntax Errors Caused by Apostrophes in Inserted Data?

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!

Stellungnahme:
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