2014-06-11 172 views
-4

我试图更新Sqlite(android)中的列,但日志显示以下错误。任何人都可以帮我解决它吗?sqlite返回:错误代码= 1,msg =接近“.....”:语法错误

06-11 12:52:21.373: I/Database(355): sqlite returned: error code = 1, msg = near "@gmail": syntax error 
06-11 12:52:21.373: E/Database(355): Error updating password=12345 using UPDATE user SET password=? WHERE COL_USERID = [email protected] 
06-11 12:52:21.373: D/AndroidRuntime(355): Shutting down VM 
06-11 12:52:21.373: W/dalvikvm(355): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
06-11 12:52:21.393: E/AndroidRuntime(355): FATAL EXCEPTION: main 
06-11 12:52:21.393: E/AndroidRuntime(355): android.database.sqlite.SQLiteException: near "@gmail": syntax error: , while compiling: UPDATE user SET password=? WHERE COL_USERID = something @gmail.com 

这里是我的代码:

public long updateUserPassword(String userid, String password) { 
    ContentValues initialValues = 
      createUserPasswordContentValues(password); 

    return database.update(LOGIN_TABLE, initialValues, "COL_USERID = "+userid, null); 
} 

private ContentValues createUserPasswordContentValues(String password) { 
    ContentValues values = new ContentValues(); 
    values.put(COL_PASSWORD, password); 
    return values; 
} 
+0

我认为你必须添加蜱约于用户ID'“COL_USERID =‘‘+用户ID +’’”' – Jens

回答

2

单引号失踪。使用下面的代码

return database.update(LOGIN_TABLE, initialValues, "COL_USERID = '"+userid+ "'", null); 
+0

非常感谢。有效 – user2387107

1

替换下面一行:

return database.update(LOGIN_TABLE, initialValues, "COL_USERID = '"+userid+"'", null); 

相反的:

return database.update(LOGIN_TABLE, initialValues, "COL_USERID = "+userid, null); 
0

你缺少单引号"COL_USERID = "+userid所以用这"COL_USERID = '" + userid + "'" 即 简单,更改此

return database.update(LOGIN_TABLE, initialValues, "COL_USERID = "+userid, null); 

return database.update(LOGIN_TABLE, initialValues, "COL_USERID = '" + userid + "'", null); 
相关问题