Ich habe festgestellt, dass ich ein Problem beim Aktualisieren / Einfügen in meine Tabelle in meiner iPhone-App habe, weil ich eine TEXT-Spalte habe, und wenn dieser Text ein 'Symbol enthält, werden die Dinge durcheinander gebracht. Was ist der beste Weg, damit umzugehen?
Sollte ich überprüfen, bevor ich eine Zeichenfolge mit einem Apostroph verwende? Gibt es eine schnelle Möglichkeit zum Hinzufügen von Formatierungen, die vor jedem Apostroph ein Escape-Zeichen einfügen?
Macht diese Frage überhaupt Sinn? lol.
sqlite erfordert, dass das 'Symbol durch zwei entkommt' '.
Sehen Sie sich dies von der offiziellen sqlite-FAQ an:
%Vor%Hey, vergiss all das Zeug. Wenn Sie möchten, dass Ihre Datenbank 'enthält. Ersetzen Sie einfach Ihre Zeichenfolge durch% 27 & amp; Wenn Sie es zurückholen, konvertieren Sie es zurück. Sie werden bekommen, was Sie wollen. Überprüfen Sie unten:
%Vor%Viel Spaß beim Programmieren :):)
Es gibt drei Möglichkeiten, dies zu lösen:
sqlite3_mprintf("%Q")
, damit SQLite dies tut. ( %q
bietet eine Ersatzerstellung an; %Q
führt eine Ersatzerstellung durch und fügt NULL für einen Nullzeiger ein.) sqlite3_bind_text
ausfüllen. Dies ist der beste Weg, dies zu tun, da es keine Neukompilierung der Anweisung für jeden String erfordert und Sie nicht zu SQL Injection öffnet . Die Verwendung einer Bindung würde folgendermaßen aussehen:
%Vor%(Vergessen Sie nicht, eine Fehlerüberprüfung durchzuführen.)
Es gibt eine Funktion, die mit SQLite zur Verfügung steht, die bei Bedarf Zeichen entziehen kann. Schau dir an: sqlite3_mprintf
Tags und Links objective-c iphone ios sqlite3