2010-11-30 14 views
10

En mi aplicación de iPhone. Estoy usando una base de datos Sqlite. Tengo un requisito para almacenar el texto en la base de datos. El texto contiene apóstrofes.Cómo insertar declaraciones que contengan apóstrofes en la base de datos Sqlite

Por ejemplo:

Insertar en valores tbl_insert ('Es camisa de Steve');

¿Cómo almacenar este tipo de declaraciones en la base de datos Sqlite?

¿Qué se debe hacer?

Por favor ayuda y sugerir.

Gracias.

+1

qué los datos de la base no soporta declaraciones parametrizados? –

Respuesta

18

Esto es algo que paso en SQL Server y MySQL también. Debes usar consultas SQL con parámetros tal y como sugirió Ignacio O usted tiene que reemplazar cada 'con ''

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

Puede escribir una función que reemplaza cada instancia de carácter' con ''

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

Sin embargo, desaconsejo encarecidamente el uso de cadenas literales en la declaración de actualización. Use consultas parametrizadas. No hay ninguna razón para comprometer la seguridad

+0

Me alegro de ser de ayuda :) –

+0

@RanhiruCooray Esto se aplica a la actualización también, cuando hago un escape, las actualizaciones inserta los dos '''' en lugar de usar uno para escapar del otro – Smith

+0

Sí, funciona. Sin embargo, desaconsejo firmemente el uso de cadenas literales en la declaración de actualización. Use consultas parametrizadas. No hay razón para comprometer la seguridad. –

3

Sólo tiene que sustituir 'a `caracteres :)

text = text.replace("'", "`"); 
Cuestiones relacionadas