:: DEVELOPER ZONE
Eine Zeichenkette ist eine Folge von Zeichen, die entweder von Apostrophs
(einfachen Anführungszeichen, ''') oder (doppelten) Anführungszeichen
('"') umgeben ist (nur einfache Anführungszeichen, wenn Sie MySQL im
ANSI-Modus laufen lassen). Beispiele:
'eine Zeichenkette' "eine weitere Zeichenkette"
Innerhalb einer Zeichenkette haben bestimmte Folgen eine spezielle
Bedeutung. Jede dieser Folgen fängt mit einem Backslash ('\') an,
bekannt als Fluchtzeichen (Escape-Zeichen). MySQL erkennt folgende
Flucht-Folgen (Escape-Folgen):
\0
Ein ASCII-0- (NUL) Zeichen.
\'
Ein Apostroph- (''') Zeichen.
\"
Ein Anführungszeichen ('"').
\b
Ein Rückschritt- (Backspace-) Zeichen.
\n
Ein Neue-Zeile- (Newline-) Zeichen.
\r
Ein Wagenrücklauf- (carriage return) Zeichen.
\t
Ein Tabulator-Zeichen.
\z
ASCII(26) (Steuerung-Z). Dieses Zeichen kann kodiert werden, um das Problem
zu umgehen, dass ASCII(26) unter Windows für Dateiende (END-OF-FILE) steht.
(ASCII(26) verursacht Probleme, wenn Sie mysql Datenbank < Dateiname
benutzen.)
\\
Ein Backslash- ('\') Zeichen.
\%
Ein '%'-Zeichen. Dieses wird benutzt, um nach literalen Instanzen von
'%' in Zusammenhängen zu suchen, wo '%' ansonsten als
Platzhalterzeichen interpretiert werden würde.
See Abschnitt 7.3.2.1, „Zeichenketten-Vergleichsfunktionen“.
\_
Ein '_'-Zeichen. Dieses wird benutzt, um nach literalen Instanzen von
'_' in Zusammenhängen zu suchen, wo '_' ansonsten als
Platzhalterzeichen interpretiert werden würde.
See Abschnitt 7.3.2.1, „Zeichenketten-Vergleichsfunktionen“.
Beachten Sie, dass bei der Benutzung von '\%' oder '\_' in
einigen Zeichenketten-Zusammenhängen diese die Zeichenketten '\%' und
'\_' und nicht '%' und '_' zurückgeben.
Es gibt verschiedene Möglichkeiten, Anführungszeichen innerhalb einer Zeichenkette zu schreiben:
Ein ''' innerhalb einer Zeichenkette, die mit ''' begrenzt wird,
kann als '''' geschrieben werden.
Ein '"' innerhalb einer Zeichenkette, die '"' begrenzt wird, kann
als '""' geschrieben werden.
Sie können dem Anführungszeichen ein Fluchtzeichen (Escape-Zeichen)
('\') voranstellen.
Ein ''' innerhalb einer Zeichenkette, die mit '"' begrenzt wird,
braucht keine spezielle Behandlung und muss nicht verdoppelt oder escapet
werden. In gleicher Weise benötigt '"' innerhalb einer Zeichenkette,
die mit ''' begrenzt wird, keine spezielle Behandlung.
Die unten stehenden SELECT-Statements zeigen, wie Quoten und Escapen
funktionieren:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello'; +-------+---------+-----------+--------+--------+ | hello | "hello" | ""hello"" | hel'lo | 'hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; +-------+---------+-----------+--------+--------+ | hello | 'hello' | ''hello'' | hel"lo | "hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "Das\nsind\nvier\nZeilen"; +--------------------+ | Das sind vier Zeilen | +--------------------+
Wenn Sie Binärdaten in eine BLOB-Spalte einfügen, müssen folgende
Zeichen durch Flucht-Folgen repräsentiert werden:
NUL
ASCII 0. Dieses geben Sie als '\0' ein (ein Backslash und ein
ASCII-'0'-Zeichen).
\
ASCII 92, Backslash. Das geben Sie als '\\' ein.
'
ASCII 39, Apostroph. Das geben Sie als '\'' ein.
"
ASCII 34, Anführungszeichen. Das geben Sie als '\"' ein.
Wenn Sie C-Code schreiben, können Sie die C-API-Funktion
mysql_escape_string() für Fluchtzeichen (Escape-Zeichen) für das
INSERT-Statement benutzen. See Abschnitt 9.4.2, „C-API-Funktionsüberblick“. In Perl
können Sie die quote-Methode des DBI-Pakets benutzen, um
Sonderzeichen in die korrekten Flucht-Folgen umzuwandeln.
See Abschnitt 9.2.2, „Die DBI-Schnittstelle“.
Sie sollten auf jede Zeichenkette, die eins der oben erwähnten Sonderzeichen enthalten könnte, eine der Flucht-Funktionen anwenden!
© 1995-2005 MySQL AB. All rights reserved.
