大家好过去三天我一直在处理一个简单的查询,但它只是不起作用,我试图阻止注册离开而没有注册到达,这是我的数据库助手中的代码,不确定该查询有什么问题!!
public Boolean HasShowedUpToday(int check_id)
{
Boolean attend;
SQLiteDatabase db=this.getWritableDatabase();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
time=Calendar.getInstance().getTime();
String dateoftoday= dateFormat.format(time);
Cursor c = db.rawQuery("SELECT * FROM attendance where user_id = '"+check_id+"' and arrival_time ='"+dateoftoday+"' and departure_time ='';", null);
if (c.moveToFirst())
{
attend=true;
}
else
{
attend=false;
}
return attend;
}
答案 0 :(得分:0)
首先,不要构造那样的查询。这是非常错误的习惯,这将使您将来编写易受SQL注入攻击的代码。
使用rawQuery (String sql, String[] selectionArgs)。 所以看起来应该是这样的:
Cursor c = db.rawQuery("SELECT * FROM attendance where user_id = ? and arrival_time = ? and departure_time IS NULL",
new String[] { check_id, dateoftoday} );
另请查看this SO answer。并且this answer看起来更好 - 将日期存储为自EPOCH时间以来的毫秒数。