SQLite数据库更新时,Android无法转义单引号字符

时间:2014-12-12 12:32:32

标签: android sqlite

您好,在我的数据库中,我有一个像“计算机”的字符串,我从数据库中获取它并显示listview,当我点击列表项时,它应该存储到我的数据库表之一。我正在做如下,但它正在崩溃

public void updateFav(String key, int value) {
        SQLiteDatabase db = mDbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        C_FAV=C_FAV.replaceAll("'","''");
        values.put(C_FAV, value);
        db.update(tableName, values, C_KEY + "='" + key.trim() + "'", null);
        db.close();
    }

以下是我的追踪

12-12 17:55:49.291: E/AndroidRuntime(18184): android.database.sqlite.SQLiteException: near "s": 
syntax error (code 1): , while compiling: UPDATE fav SET favorite=? WHERE key='computer's'

1 个答案:

答案 0 :(得分:2)

您正在C_FAV中转义撇号,这似乎是列名但不在key中。

考虑使用?占位符和绑定参数,例如

db.update(tableName, values, C_KEY + "=?", new String[] { key.trim() });