gpt4 book ai didi

java - Android SQLite -- 使用 whereArgs 背后的逻辑是什么

转载 作者:行者123 更新时间:2023-12-01 12:46:55 25 4
gpt4 key购买 nike

考虑whereArgs在类似的函数中:

mDatabase.update(TABLE_NAME, values, whereClause, whereArgs)

我知道它用于 whereClause 中的“?” ,但我不知道为什么要发明这个whereArgs而不是将参数插入 whereClause直接地。从 whereClause 中提取“?”并没有找到任何方便至whereArgs 。谁能举一个很好的例子来说明whereArgs有多么有用?欣赏它!

最佳答案

As the documentation says ,它用于查询字符串中的 ? 标记。例如,您可以使用这个:

SQLiteDatabase.delete("users", "user_name = ?", new String[] {"Talib"});

参数标记的使用对于避免SQL injection非常重要。 。例如,

SQLiteDatabase.delete("users", "user_name = ?", new String[] {"' OR '' = '"});

不会删除表中的所有行,但如果你天真地这样做了

SQLiteDatabase.delete("users", "user_name = '" + userName + "'");

并且 userName 设置为 "' OR '' = '",这确实会破坏整个表格。

来自:https://stackoverflow.com/a/18304490/1239966

关于java - Android SQLite -- 使用 whereArgs 背后的逻辑是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com