SQLiteException: unrecognized token:

1029 ワード

データベースへのデータ更新時にandroidが表示されます.database.sqlite.SQLiteException: unrecognized token: "33xo8cgMSaRqZNs0bS2ol2RxIsqfOKUj8Dyb7sMN"(code 1): , while compiling: update Book1 set face_id =33xo8cgMSaRqZNs0bS2ol2RxIsqfOKUj8Dyb7sMN where image_id=24478
sql文:
// faceId  Book1
    public void addFaceId(int imageId,String faceId){
        db = mDatabaseHelper.getWritableDatabase();
        db.execSQL("update Book1 set face_id ="+faceId+" where image_id="+imageId);
}

文字列に一重引用符が付いていないことがわかりました.
元のsql文に文字列がある場合は、文字列を単一引用符''で囲まなければなりません.
例:update Book 1 set face_id ='faceId' where image_id=imageId;
faceIdは文字列でupdate Book 1 set face_ではありませんid =faceId where image_id=imageId;
正しい書き方は次のとおりです.
// faceId  Book1
    public void addFaceId(int imageId,String faceId){
        db = mDatabaseHelper.getWritableDatabase();
        db.execSQL("update Book1 set face_id ='"+faceId+"' where image_id="+imageId);
}