ObjectiveC sqlite3 Problem

8

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.

    
CodeGuy 30.06.2011, 18:37
quelle

4 Antworten

12

sqlite erfordert, dass das 'Symbol durch zwei entkommt' '.

Sehen Sie sich dies von der offiziellen sqlite-FAQ an:

%Vor%     
viggio24 30.06.2011, 18:46
quelle
5

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 :):)

    
Niru Mukund Shah 15.10.2012 11:04
quelle
5

Es gibt drei Möglichkeiten, dies zu lösen:

  1. Formatieren Sie selbst. Tun Sie das nicht. (Nun, es sei denn, diese Zeichenfolge ist Teil Ihres Codes und keine Benutzereingabe. In diesem Fall ist dieser Ansatz in Ordnung.)
  2. Verwenden Sie 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.)
  3. Verwenden Sie Bindings in Ihrer Anweisung, die Sie mit 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.)

    
Steven Fisher 30.06.2011 19:43
quelle
3

Es gibt eine Funktion, die mit SQLite zur Verfügung steht, die bei Bedarf Zeichen entziehen kann. Schau dir an: sqlite3_mprintf

Ссылка

    
xyzzycoder 30.06.2011 19:03
quelle

Tags und Links