我正在尝试使用update方法更新表中的列。我抛出这样的语法错误:
SQLiteException: no such column: DataStructures (code 1): , while compiling: UPDATE tbl_courses SET checked_status=? WHERE course_name=DataStructures
这是我的数据库查询:
public static final String TABLE_COURSES = "tbl_courses";
public static final String COLUMN_COURSE_ID = "_id";
public static final String COLUMN_COURSE_NAME = "course_name";
public static final String COLUMN_COURSE_SELECTED = "checked_status";
public static final String COLUMN_COURSE_CODE = "course_code";
public void updateSelectedCourseField(String courseName, String courseSelected) {
ContentValues args = new ContentValues();
args.put(COLUMN_COURSE_SELECTED, courseSelected);
database.update(TABLE_COURSES, args, COLUMN_COURSE_NAME + "=" + courseName,null);
}
我正在尝试更改tbl_courses中的checked_status值,其中course_name = DataStructures。我确信它在数据库中,但它给我的错误。请指导我完成这个。
答案 0 :(得分:2)
更好的解决方案是避免字符串连接来构建查询。而是这样做:
database.update(TABLE_COURSES, args, COLUMN_COURSE_NAME + "=?", new String[]{courseName});
这不仅会为您提供报价,还可以避免SQL注入攻击。在SQL查询中使用用户输入时要小心。