通过android的sqlite数据库进行不当搜索

时间:2012-11-28 15:58:49

标签: android database sqlite

此查询似乎运行良好:

public Cursor getOneWine(long id) {
    return database.query("vino", null, "_id=" + id, null,
                          null, null, null);
}

但是当我尝试将"_id"+id更改为"name="+name时,它无效!也尝试了这个:

public Cursor getSearchWine(String name) {
    return database.query("vino", new String[] {"_id", "name"}, "name="+name, null,
                          null, null, "name");
}

当我想要所有葡萄酒的光标时效果很好。

public Cursor getAllWines() {
    return database.query("vino", new String[] {"_id", "name"},  null, null,
                          null, null, "name");
}

还检查了Android文档但未找到解决方案。

1 个答案:

答案 0 :(得分:1)

在SQL中,必须引用字符串:

db.query("vino", new String[] {"_id", "nombre"}, "name='" + name + "'", ...);

但是,如果名称包含',则会导致问题;建议使用参数代替字符串:

db.query("vino", new String[] {"_id", "nombre"}, "name=?", new String[] {name}, ...);