SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Qual é o propósito de String[] whereArgs na função int delete (String table, String whereClause, String[] whereArgs)?


Como a documentação diz, é usado para ? marcadores em sua string de consulta. Por exemplo, você pode usar isso:
SQLiteDatabase.delete("users", "user_name = ?", new String[] {"Talib"});

O uso de marcadores de parâmetros é muito importante para evitar injeção de SQL. Por exemplo,
SQLiteDatabase.delete("users", "user_name = ?", new String[] {"' OR '' = '"});

não excluirá todas as linhas da sua tabela, mas se você ingenuamente o fez
SQLiteDatabase.delete("users", "user_name = '" + userName + "'");

e userName foi definido como "' OR '' = '" , isso realmente destruiria toda a sua mesa.