Heim >Datenbank >MySQL-Tutorial >Wie maskiere ich Sonderzeichen in MySQL-Abfragen richtig?

Wie maskiere ich Sonderzeichen in MySQL-Abfragen richtig?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 14:18:10959Durchsuche

How Do I Properly Escape Special Characters in MySQL Queries?

Sonderzeichen in MySQL-Abfragen maskieren

Beim Erstellen von MySQL-Abfragen, die Sonderzeichen enthalten, ist es wichtig, diese zu maskieren, um Syntaxfehler zu vermeiden. Dies wird noch wichtiger, wenn es um Benutzereingaben geht, da Sonderzeichen für böswillige Zwecke ausgenutzt werden können.

Betrachten Sie das folgende Beispiel:

select * from tablename where fields like "%string "hi"  %";

In dieser Abfrage sind die doppelten Anführungszeichen, die das umgeben Zeichenfolge „hi“ werden als Teil der Zeichenfolge selbst interpretiert, was zu einem Syntaxfehler führt.

Escaping Anforderungen

Die spezifische erforderliche Escape-Sequenz hängt vom verwendeten Sonderzeichen ab. MySQL erkennt die folgenden Escape-Sequenzen:

  • ' ' - ASCII-NUL-Zeichen (0x00)
  • ''' - Einfaches Anführungszeichen
  • '"' - Doppeltes Anführungszeichen Zeichen
  • 'b' - Rücktaste
  • 'n' - Newline (Zeilenvorschub) Zeichen
  • 'r' - Wagenrücklaufzeichen
  • 't' - Tabulatorzeichen
  • 'Z' - ASCII 26 (Strg-Z)
  • ' ' – Backslash-Zeichen
  • '%' – Prozentzeichen
  • '_' – Unterstrich Zeichen

Lösung

Um die doppelten Anführungszeichen in der Beispielabfrage zu umgehen, sollte die Abfrage wie folgt geschrieben werden:

select * from tablename where fields like '%string \"hi\" %';

Alternativ können einfache Anführungszeichen als Zeichenfolgentrennzeichen verwendet werden:

select * from tablename where fields like '%string ''hi'' %';

Dieser Ansatz vereinfacht das Escapen durch Sicherstellen dass einfache Anführungszeichen innerhalb der Zeichenfolge nicht maskiert werden müssen.

Das obige ist der detaillierte Inhalt vonWie maskiere ich Sonderzeichen in MySQL-Abfragen richtig?. 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