这个SQLite查询有什么问题?

时间:2011-04-21 09:42:20

标签: android sqlite where-clause

c=MyDB.rawQuery("SELECT Distance FROM " +
            Table1 + "WHERE Source = '" + source + "' AND Distance = " +
                distance + " ' ", null);

distance = c.getFloat(c.getColumnIndex("Distance"));

2 个答案:

答案 0 :(得分:2)

c=MyDB.rawQuery("SELECT Distance FROM " + Table1 + " WHERE Source = '" + source + "' AND Distance = '" + distance + " ' ", null);

注意WHERE关键字之前的空格和距离=之后的“'”。 另外,最好不要使用rawQuery,而是使用查询方法,因为它使用prepared statement,这样更安全。

答案 1 :(得分:0)

你在距离值之前缺少一个撇号,在表名之后缺少一个空格。

但是,这种构造查询的方式使您容易受到SQL注入攻击。相反,使用适当的参数。如何执行此操作将记录在您正在使用的库中。