Возможный дубликат:
Как экранировать специальные символы, такие как ' в sqlite в android
Я использую форму для хранения некоторых значений в базе данных Android SQLite. Если какое-либо из полей содержит символ ', возникает ошибка, поэтому я попытался ее избежать, но ошибка все еще существует.
Это мой код:
public boolean createCalendar(String id, String name, String descr) {
try{
String newDescr = descr.replace("'", "\\'");
db.execSQL("INSERT INTO Calendar (id, name, description) VALUES " +
"('"+id+"','"+name+"','"+newDescr+"');");
...
}
}
И это ошибка:
sqlite returned: error code = 1, msg = near "siksjs": syntax error, db=/data/data/com.pfc.app/databases/SSDB
android.database.sqlite.SQLiteException: near "siksjs": syntax error: , while compiling: INSERT INTO Calendar (id, name, description) VALUES ('43779fcb-3d8c-650b-b529-50810506375e','kdldlls','ddk \' siksjs');
Как мне его хранить?
Спасибо!
DatabaseUtils.sqlEscapeString(String)
согласно этому ответу. Он был разработан именно по этой причине. - person Richard Le Mesurier   schedule 02.07.2015