ドキュメントに記載されているように、?
に使用されます クエリ文字列内のマーカー。たとえば、次のように使用できます。
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 '' = '"
に設定されました 、それは確かにあなたのテーブル全体を破壊するでしょう。