-3

String[] whereArgs は SQLiteDatabase クラスの更新関数にも存在しますが、それは何を示していますか?? ドキュメントを読みましたが、理解できません。助けてください。前もって感謝します !!

4

2 に答える 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 に答える