如何在SQLite Database Varchar字段中插入双引号(“)?

时间:2011-10-04 11:25:16

标签: android sqlite

我正在尝试使用此字段TITLE varchar(200) NOT NULL插入表格中的下一句话:

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi \"Obrint Pas 2011\"", ... 

问题是SQLite误解了“逃避问题,我不知道如何在我的Android程序中解决问题(也许是字符代码?)。

5 个答案:

答案 0 :(得分:13)

从命令行使用sqlite和直接sql insert命令,我发现双引号会自行转义。 用你的例子

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi ""Obrint Pas 2011""", ...

答案 1 :(得分:3)

要将值插入数据库,您应始终使用SQLiteStatementHowTo),因为它们会逃避您的值并阻止您的应用被SQL-Injections定位。

此外,如果您要插入多个值(例如在循环中),则执行具有不同边界值的预编译语句比正常插入语句快得多。

答案 2 :(得分:2)

尝试类似的东西:

ContentValues values = new ContentValues();
values.put("YOURCOLUMNNAME", "1-Preludi \"Obrint Pas 2011\"");
// ... other stuff you want to insert ...
SQLiteDatabase db = ... ; // Usually obtained using a SQLiteOpenHelper
long id = db.insertWithOnConflict("EXAMPLETABLE", BaseColumns._ID, values, SQLiteDatabase.CONFLICT_IGNORE);

答案 3 :(得分:2)

使用此选项以任何特殊字符插入数据

ContentValues initialValues = new ContentValues();
initialValues.put("Id", id);
initialValues.put("Name", Name);
// ...
myDataBase.insert("EXAMPLETABLE", null, initialValues);

答案 4 :(得分:1)

试试这个:

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ('1-Preludi "Obrint Pas 2011"', ...