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
yourwhereClause
が の形式のsomecolumn=?
場合、 の最初の要素がwhereArgs
を置き換えるために使用され?
ます。これらは位置パラメータと呼ばれます。位置パラメータを使用する利点は、SQLite が文字列の引用、埋め込まれた引用符のエスケープなどを処理することです。
于 2013-08-18T23:04:26.317 に答える