2012-10-19 36 views
0

Possible Duplicate:
How to escape special characters like ' in sqlite in android安卓店在SQLite的字符'

我使用的形式在一定值存儲在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'); 

我怎麼保存呢?

謝謝!

+0

使用'DatabaseUtils.sqlEscapeString(字符串)'[按照這個答案](http://stackoverflow.com/a/27082084/383414)。它的設計正是出於這個原因。 –

回答

0

使用

p_query = "select * from mytable where name_field = ?"; 
mDb.rawQuery(p_query, new String[] { uvalue }); 

或者

String newDescr = descr.replaceAll("'", "''"); 
+0

http://stackoverflow.com/questions/12615113/how-to-escape-special-characters-like-in-sqlite-in-android –