目前,我的 Android 中的 SQLite 数据库存在问题,当我尝试运行比较时,出现以下错误: 引起原因:android.database.sqlite.SQLiteException:靠近“@hotmail”:语法错误:,编译时:SELECT DISTINCT _id,userName,password FROM userTable WHERE [email protected]密码=shshsh
我的搜索是:
public boolean getUserNameAndPassword(String userName, String Password) 抛出 SQLException {
Cursor mCursor =
db.query(true, TABLE_NAME, new String[] {KEY_ROWID,USER,
PWD},USER + "=" + userName + "AND password=" + Password, null,
null, null, null, null);
if (mCursor.getCount() > 0)
{
return true;
}
return false;}
我尝试运行它是:
boolean signIn = dbHelper.getUserNameAndPassword(mEmail, mPassword);
if (signIn){
Toast.makeText(getBaseContext(),"Sign in successful",Toast.LENGTH_LONG).show();
}else {Toast.makeText(getBaseContext(),"Sign in failed",Toast.LENGTH_LONG).show();}
提前致谢!
最佳答案
您应该使用参数化查询,而不是仅仅附加用户名和密码变量,请参阅下面的示例:
Cursor mCursor =
db.query(true, TABLE_NAME, new String[] {KEY_ROWID,USER,
PWD},USER + " = ? AND password = ?", new String[]{ userName, Password },
null, null, null, null);
if (mCursor.getCount() > 0)
{
return true;
}
return false;}
关于Android SQLite数据库异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23116949/