2010-11-30 5 views
10

In meiner iPhone App. Ich benutze eine SQLite-Datenbank. Ich habe eine Anforderung, den Text in der Datenbank zu speichern. Der Text enthält Apostroph s.Wie Sie Anweisungen einfügen, die Apostrophe in Sqlite-Datenbank enthält

Beispiel:

Insert in tbl_insert Werte ('Es ist Shirt Steve');

Wie diese Art von Anweisungen in Sqlite-Datenbank gespeichert werden?

Was ist zu tun?

Bitte helfen und vorschlagen.

Danke.

+1

Does Kerndaten zu kompromittieren nicht parametrisierte Aussagen unterstützen? –

Antwort

18

Dies ist etwas, das ich auch in SQL Server und MySQL durchlaufe. Sie sollten entweder parametrisierte SQL-Abfragen verwenden, wie Ignacio vorgeschlagen oder Sie müssen jede ersetzen ‚mit‚‘

Insert into tbl_insert values ('It is Steve''s Shirt'); 

Sie können eine Funktion schreiben, die jede Instanz Zeichen‘ mit ‚‘

http://www.kamath.com/codelibrary/cl003_apostrophe.asp

ersetzt

Allerdings Ich rate dringend die Verwendung von Literal-Strings in der Update-Anweisung. Verwenden Sie parametrisierte Abfragen. Es gibt keinen Grund Sicherheit

+0

Froh, Hilfe zu sein :) –

+0

@RanhiruCooray gilt dies auch zu aktualisieren, wenn ich ein Escape, Updates fügt die beiden '' '' statt mit einem, um die anderen zu entkommen – Smith

+0

Ja, es funktioniert. Allerdings rate ich dringend von der Verwendung von Literal-Strings in der Update-Anweisung. Verwenden Sie parametrisierte Abfragen. Es gibt keinen Grund, die Sicherheit zu gefährden. –

3

einfach ersetzen "Zeichen` :)

text = text.replace("'", "`"); 
Verwandte Themen