sqlite中正确的更新语法是什么?

时间:2019-08-13 17:59:12

标签: android sqlite android-sqlite

我正在使用更新语法获取数据库sqlite异常。我应该在哪里放置引号而不出现错误“无此列”?

    //2.create ContentValues to add key "column"/value
    ContentValues values = new ContentValues();
    values.put("active", _active); //update active flag

    //3.updating row
    int i = db.update(TABLE_NAME,//table
            values,//column/value
            COLUMN_UID+"="+_uid,//selections
            new String[]{String.valueOf(_uid)});//selectionargs

我的代码产生此错误。我知道_uid变量应包含引号,但这似乎也不正确。

  

2019-08-12 21:39:19.620 22215-22215 / com.bab_c.picksandbets   E / AndroidRuntime:致命异常:main       流程:com.bab_c.picksandbets,PID:22215       android.database.sqlite.SQLiteException:无此类列:bobbyb2222(代码1):,而在编译时:UPDATE pab_pref SET active =?   哪里uid = bobbyb2222

1 个答案:

答案 0 :(得分:1)

您无需在变量周围加上引号,只需对参数使用占位符:

head -n 3 MiseqData/result2012/12* | tail -n 1

这是建议的更新方式。
不要使用其他方式,例如直接传递用引号引起来的变量,因为这可能会导致sql injection