Heim >Datenbank >MySQL-Tutorial >Wie entkomme ich Apostrophen beim Einfügen von Daten in eine SQL-INSERT-Abfrage?

Wie entkomme ich Apostrophen beim Einfügen von Daten in eine SQL-INSERT-Abfrage?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 03:39:31695Durchsuche

How to Escape Apostrophes When Inserting Data in an SQL INSERT Query?

IssueInsertingDataWithApostrophesError

Versuche, Daten mit Apostrophen (einfache Anführungszeichen) mithilfe einer SQL INSERT-Abfrage einzufügen, schlagen fehl und lösen einen SQL-Syntaxfehler aus Umgang mit Sonderzeichen in MySQL.

Lösung

Um dieses Problem zu beheben, maskieren Sie die Apostrophe mit Backslashes in den eingefügten Daten. Der Backslash fungiert in SQL als Escape-Zeichen und gibt an, dass das folgende Zeichen wörtlich behandelt werden sollte. Indem Sie die Apostrophe maskieren, weisen Sie MySQL an, sie als Teil des Datenwerts zu interpretieren und nicht als Sonderzeichen, die die Zeichenfolge beenden.

Zum Beispiel anstelle von:

INSERT INTO table_name (column_name) VALUES ('Kellog's');

Verwenden Sie:

INSERT INTO table_name (column_name) VALUES ('Kellogg\'s');

Dadurch wird MySQL angewiesen, die gesamte Zeichenfolge „Kellogg's“ als Wert für die Spalte „Spaltenname“ einzufügen.

Zusätzliche Überlegungen

  • Verwenden einer Escape-Funktion: Einige Programmiersprachen bieten Funktionen, die speziell für das Escapen von Sonderzeichen entwickelt wurden. In PHP können Sie beispielsweise die Funktion mysql_real_escape_string() verwenden, um Apostrophe und andere Sonderzeichen in Datenwerten automatisch zu maskieren, bevor Sie sie in SQL-Abfragen einfügen.
  • Manuelles Escapen vermeiden: Während manuell Das Escapen von Apostrophen kann in einigen Fällen funktionieren. Es wird jedoch allgemein als bewährte Vorgehensweise angesehen, eine Escape-Funktion oder ein parametrisiertes Abfragesystem zu verwenden, um SQL-Injection-Angriffe zu verhindern.

Das obige ist der detaillierte Inhalt vonWie entkomme ich Apostrophen beim Einfügen von Daten in eine SQL-INSERT-Abfrage?. 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