我正在尝试使用此字段TITLE varchar(200) NOT NULL
插入表格中的下一句话:
INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi \"Obrint Pas 2011\"", ...
问题是SQLite误解了“逃避问题,我不知道如何在我的Android程序中解决问题(也许是字符代码?)。
答案 0 :(得分:13)
从命令行使用sqlite和直接sql insert命令,我发现双引号会自行转义。 用你的例子
INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi ""Obrint Pas 2011""", ...
答案 1 :(得分:3)
要将值插入数据库,您应始终使用SQLiteStatement(HowTo),因为它们会逃避您的值并阻止您的应用被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"', ...