SQLite
 sql >> Base de données >  >> RDS >> SQLite

Quel est le but de la fonction String[] whereArgs in int delete (String table, String whereClause, String[] whereArgs) ?

Comme le dit la documentation, il est utilisé pour ? marqueurs dans votre chaîne de requête. Par exemple, vous pouvez utiliser ceci :

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

L'utilisation de marqueurs de paramètres est très importante pour éviter l'injection SQL. Par exemple,

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

ne supprimera pas toutes les lignes de votre tableau, mais si vous l'avez fait naïvement

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

et userName a été défini sur "' OR '' = '" , ce serait en effet atomiser toute votre table.