【发布时间】:2011-11-17 03:28:58
【问题描述】:
我正在尝试在 Android 中执行以下 SQL 查询:
String names = "'name1', 'name2"; // in the code this is dynamically generated
String query = "SELECT * FROM table WHERE name IN (?)";
Cursor cursor = mDb.rawQuery(query, new String[]{names});
但是,Android 不会将问号替换为正确的值。我可以执行以下操作,但这并不能防止 SQL 注入:
String query = "SELECT * FROM table WHERE name IN (" + names + ")";
Cursor cursor = mDb.rawQuery(query, null);
我怎样才能绕过这个问题并能够使用 IN 子句?
【问题讨论】: