Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新SQLite原因表“;LIKE或GLOB模式太复杂(代码1)“;错误_Android_Sqlite_Bitmap - Fatal编程技术网

Android 更新SQLite原因表“;LIKE或GLOB模式太复杂(代码1)“;错误

Android 更新SQLite原因表“;LIKE或GLOB模式太复杂(代码1)“;错误,android,sqlite,bitmap,Android,Sqlite,Bitmap,我试图在SQLite数据库中保存位图字符串,但当我尝试更新数据库时,却出现以下错误:LIKE或GLOB模式太复杂(代码1) 我从ImageViewcropImageView中获取位图,并将其转换为位图>字符串,如下所示: UserDatabase db = new UserDatabase(getApplicationContext()); HashMap<String, String> user = db.getUserDetails(); Bitmap bitmap =

我试图在SQLite数据库中保存位图字符串,但当我尝试更新数据库时,却出现以下错误:
LIKE或GLOB模式太复杂(代码1)

我从ImageView
cropImageView
中获取位图,并将其转换为位图>字符串,如下所示:

 UserDatabase db = new UserDatabase(getApplicationContext());
 HashMap<String, String> user = db.getUserDetails();

 Bitmap bitmap = ((BitmapDrawable) cropImageView.getDrawable()).getBitmap();
 String stringBitmap = bitMapToString(bitmap);
 db.updateUsers(user.get("image"), user.get("email"), user.get("username"), stringBitmap);
报告说:

LIKE或GLOB模式的长度限制为SQLITE\u MAX\u LIKE\u模式\u长度字节。此限制的默认值为50000

无论如何,应该不需要通过图像内容搜索用户记录。只需使用主键

    public class UserDatabase extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "login_database";
    private static final String TABLE_LOGIN = "login_table";

    // Column items
    private static final String KEY_IMAGE = "image";
    private static final String KEY_EMAIL = "email";
    private static final String KEY_USERNAME = "username";

    public UserDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // Creating Tables
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TABLE = "CREATE TABLE " + TABLE_LOGIN + "("
                + KEY_IMAGE + " TEXT, "
                + KEY_EMAIL + " TEXT,"
                + KEY_USERNAME + " TEXT " + ");";

       db.execSQL(CREATE_TABLE);
    }

    // This method stores user details in database.
    public void addUser(String image, String email, String username) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(KEY_IMAGE, image); // Image
        values.put(KEY_EMAIL, email); // Email
        values.put(KEY_USERNAME, username); // Username

        // Inserting Row
        long id = db.insert(TABLE_LOGIN, null, values);
        db.close(); // Closing database connection

        Log.d(TAG, "New user inserted into sqlite: " + id);
    }

    // This method updates user information.
    public void updateUsers(String image, String email, String username, String latest_image) {
        String selection = KEY_IMAGE + " LIKE ? AND " + KEY_EMAIL + " LIKE ? AND " + KEY_USERNAME + " LIKE ? ";
        String[] args = { image, email, username };

        ContentValues values = new ContentValues();
        values.put(KEY_IMAGE, latest_image);

        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
        sqLiteDatabase.update(TABLE_LOGIN, values, selection, args);
    }

}