1

我不明白为什么我的查询在 Java (android) 中不起作用。我想访问一个 sqlite 数据库,但我认为问题在于“WHERE”子句。

Cursor cQuery = db.query("PLUGBATTERY", new String[] {
                        "strftime('%s',date)", "code", "state","startup" }, "strftime('%Y-%m-%d',date)=="+DATE_FORMAT_DATE.format(currentC.getTime()), null, null,null, "strftime('%s',date)");

在调试视图中我有 DATE_FORMAT_DATE.format(currentC.getTime()) = 2013-08-22

也许我可以从我的应用程序代码中测试我的查询,但我不知道该怎么做......

谢谢你的帮助。

4

1 回答 1

3

在 SQL 中,必须写入字符串'with quotes'

您可以通过使用参数来避免这样的格式问题(和SQL 注入攻击):

cursor = db.query("PLUGBATTERY",
                  new String[] { "strftime('%s',date)", "code", "state","startup" },
                  "date(date) = ?",
                  new String[] { DATE_FORMAT_DATE.format(currentC.getTime()) },
                  null, null, "date");
于 2013-08-27T10:55:23.150 回答