Es gibt einen anderen Weg, dies zu tun, der je nach Ihrer Perspektive sicherer sein kann oder nicht. Es erfordert MySQL 5.6 oder höher, da eine bestimmte Zeichenfolgenfunktion verwendet wird : FROM_BASE64
.
Angenommen, Sie haben diese Nachricht, die Sie einfügen möchten:
"Ah", fast kopflos Nick winkte mit einer eleganten Hand, "eine Angelegenheit ohne Bedeutung ... Es ist nicht so, als wollte ich wirklich mitmachen ... Ich dachte, ich würde mich bewerben, aber anscheinend erfülle ich die Anforderungen nicht '- "
Dieses Zitat enthält eine Reihe von einfachen und doppelten Anführungszeichen und wäre ein echtes Problem beim Einfügen in MySQL. Wenn Sie das aus einem Programm einfügen, ist es einfach, die Anführungszeichen usw. zu umgehen. Wenn Sie dies jedoch in ein SQL-Skript einfügen müssen, müssen Sie den Text bearbeiten (um die Anführungszeichen zu umgehen), was fehleranfällig sein kann oder empfindlich gegenüber Zeilenumbrüchen usw.
Stattdessen können Sie den Text Base64-codieren, sodass Sie eine "saubere" Zeichenfolge haben:
SWtGb0xDSWdUbVZoY214NUlFaGxZV1JzWlhOeklFNXBZMnNnZD
JGMlpXUWdZVzRnWld4bFoyRnVkQ0JvWVc1a0xDQWlZU0J0WVhS
MFpYCklnYjJZZ2JtOGdhVzF3YjNKMFlXNWpaUzRnTGlBdUlDNG
dTWFFuY3lCdWIzUWdZWE1nZEdodmRXZG9JRWtnY21WaGJHeDVJ
SGRoYm5SbApaQ0IwYnlCcWIybHVMaUF1SUM0Z0xpQlVhRzkxWj
JoMElFa25aQ0JoY0hCc2VTd2dZblYwSUdGd2NHRnlaVzUwYkhr
Z1NTQW5aRzl1SjMKUWdablZzWm1sc2JDQnlaWEYxYVhKbGJXVn
VkSE1uSUMwaUlBPT0K
Einige Hinweise zur Base64-Codierung:
- Die Base64-Codierung ist eine binäre Codierung . Stellen Sie daher sicher, dass Ihr Zeichensatz bei der Codierung korrekt ist, da MySQL die Base64-codierte Zeichenfolge in Bytes decodiert und diese dann interpretiert. Stellen Sie sicher, dass
base64
MySQL sich über die Zeichenkodierung einig ist (ich empfehle UTF-8).
- Ich habe die Zeichenfolge zur besseren Lesbarkeit bei Stapelüberlauf in 50 Spalten eingeschlossen. Sie können es in eine beliebige Anzahl von Spalten einschließen (oder gar nicht umbrechen), und es funktioniert weiterhin.
Um dies in MySQL zu laden:
INSERT INTO my_table (text) VALUES (FROM_BASE64('
SWtGb0xDSWdUbVZoY214NUlFaGxZV1JzWlhOeklFNXBZMnNnZD
JGMlpXUWdZVzRnWld4bFoyRnVkQ0JvWVc1a0xDQWlZU0J0WVhS
MFpYCklnYjJZZ2JtOGdhVzF3YjNKMFlXNWpaUzRnTGlBdUlDNG
dTWFFuY3lCdWIzUWdZWE1nZEdodmRXZG9JRWtnY21WaGJHeDVJ
SGRoYm5SbApaQ0IwYnlCcWIybHVMaUF1SUM0Z0xpQlVhRzkxWj
JoMElFa25aQ0JoY0hCc2VTd2dZblYwSUdGd2NHRnlaVzUwYkhr
Z1NTQW5aRzl1SjMKUWdablZzWm1sc2JDQnlaWEYxYVhKbGJXVn
VkSE1uSUMwaUlBPT0K
'));
Dies wird ohne Beschwerden eingefügt, und Sie mussten keinen Text innerhalb der Zeichenfolge manuell maskieren.