String[]其中Args也存在于SQLiteDatabase类的更新函数中,它描述了什么??我看过文件,但没有拿到,请帮忙。提前感谢!!
正如文档所说,它用于查询字符串中的?
标记。例如,您可以使用以下内容:
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 '' = '"
,这确实会破坏整个表。
如果whereClause
的形式为somecolumn=?
,则whereArgs
中的第一个元素将用于替换?
。这些被称为位置参数。使用位置参数的优点是SQLite将处理引用字符串、转义任何嵌入的引号等。