String[] whereArgs 也出现在 SQLiteDatabase 类的更新函数中,它描述了什么?我已经阅读了文档,但没有得到它,请帮助。提前致谢 !!
问问题
1931 次
2 回答
9
正如文档所说,它用于?
查询字符串中的标记。例如,您可能会使用这个:
SQLiteDatabase.delete("users", "user_name = ?", new String[] {"Talib"});
参数标记的使用对于避免SQL 注入非常重要。例如,
SQLiteDatabase.delete("users", "user_name = ?", new String[] {"' OR '' = '"});
不会删除表的所有行,但如果你天真地做了
SQLiteDatabase.delete("users", "user_name = '" + userName + "'");
并userName
设置为"' OR '' = '"
,那确实会摧毁你的整个桌子。
于 2013-08-18T23:03:44.097 回答
4
如果您的whereClause
is 形式somecolumn=?
,第一个元素 out ofwhereArgs
将用于替换?
. 这些被称为位置参数。使用位置参数的优点是 SQLite 将处理引用字符串、转义任何嵌入的引号等。
于 2013-08-18T23:04:26.317 回答