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异常错误1_Android_Sqlite - Fatal编程技术网

Android SQLite异常错误1

Android SQLite异常错误1,android,sqlite,Android,Sqlite,我的应用程序中有一个SQLite错误,看起来很简单,但我不知道如何解决它,也不知道是什么原因造成的。我试着修复它,但没有成功,当然,这就是我来这里的原因。任何帮助都将不胜感激 Java代码: public HashMap<String, String> getProfileDetails(String pid, String email){ HashMap<String,String> profile = new HashMap<String,Str

我的应用程序中有一个SQLite错误,看起来很简单,但我不知道如何解决它,也不知道是什么原因造成的。我试着修复它,但没有成功,当然,这就是我来这里的原因。任何帮助都将不胜感激

Java代码:

public HashMap<String, String> getProfileDetails(String pid, String email){
        HashMap<String,String> profile = new HashMap<String,String>();
        String selectQuery = "SELECT  * FROM " + TABLE_FAVOURITE_PROFILES + " WHERE " + KEY_PID + " = " 
        + pid + " AND " + KEY_USER_EMAIL + " = " + email;


        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        // Moves to first row
        cursor.moveToFirst();
        if(cursor.getCount() > 0){
            profile.put("pid", cursor.getString(1));
            profile.put("petname", cursor.getString(2));
            profile.put("pettype", cursor.getString(3));
            profile.put("email", cursor.getString(4));
            profile.put("username", cursor.getString(5));
        }
        cursor.close();
        db.close();
        // returns user
        return profile;
    } 

提前感谢。

字符串必须用单引号括起来。
那么这个,

+ pid + " AND " + KEY_USER_EMAIL + " = " + email;
必须是:

+ pid + " AND " + KEY_USER_EMAIL + " = '" + email + "'";
更好的是,您可以绑定参数

String selectQuery = "SELECT  * FROM " + TABLE_FAVOURITE_PROFILES + " WHERE " + KEY_PID + " =  ? AND " + KEY_USER_EMAIL + " = ?";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{"" + pid, email});

字符串必须用单引号括起来。
那么这个,

+ pid + " AND " + KEY_USER_EMAIL + " = " + email;
必须是:

+ pid + " AND " + KEY_USER_EMAIL + " = '" + email + "'";
更好的是,您可以绑定参数

String selectQuery = "SELECT  * FROM " + TABLE_FAVOURITE_PROFILES + " WHERE " + KEY_PID + " =  ? AND " + KEY_USER_EMAIL + " = ?";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{"" + pid, email});

字符串必须用单引号括起来。
那么这个,

+ pid + " AND " + KEY_USER_EMAIL + " = " + email;
必须是:

+ pid + " AND " + KEY_USER_EMAIL + " = '" + email + "'";
更好的是,您可以绑定参数

String selectQuery = "SELECT  * FROM " + TABLE_FAVOURITE_PROFILES + " WHERE " + KEY_PID + " =  ? AND " + KEY_USER_EMAIL + " = ?";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{"" + pid, email});

字符串必须用单引号括起来。
那么这个,

+ pid + " AND " + KEY_USER_EMAIL + " = " + email;
必须是:

+ pid + " AND " + KEY_USER_EMAIL + " = '" + email + "'";
更好的是,您可以绑定参数

String selectQuery = "SELECT  * FROM " + TABLE_FAVOURITE_PROFILES + " WHERE " + KEY_PID + " =  ? AND " + KEY_USER_EMAIL + " = ?";

SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{"" + pid, email});

哈哈,这真是太简单了,太愚蠢了,在我发布问题之前,我一直在尝试,但我没有做对,不管怎样,现在它工作得很好,谢谢!如果有帮助的话,请不要忘记接受我的答案并投赞成票……;)哈哈,这很简单,多么愚蠢,在我发布问题之前,我一直在尝试我的方式添加引号,但我没有做对,不管怎样,现在它运行良好,谢谢!如果有帮助的话,请不要忘记接受我的答案并投赞成票……;)哈哈,这很简单,多么愚蠢,在我发布问题之前,我一直在尝试我的方式添加引号,但我没有做对,不管怎样,现在它运行良好,谢谢!如果有帮助的话,请不要忘记接受我的答案并投赞成票……;)哈哈,这很简单,多么愚蠢,在我发布问题之前,我一直在尝试我的方式添加引号,但我没有做对,不管怎样,现在它运行良好,谢谢!如果有帮助的话,请不要忘记接受我的答案并投赞成票……;)