sql >> データベース >  >> RDS >> SQLite

int delete(String table、String whereClause、String [] whereArgs)関数のString [] whereArgsの目的は何ですか?

    ドキュメントに記載されているように、?に使用されます クエリ文字列内のマーカー。たとえば、次のように使用できます。

    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 '' = '"に設定されました 、それは確かにあなたのテーブル全体を破壊するでしょう。



    1. 大きなテーブルのSQLServer統計を更新する方法

    2. 列挙型が持つことができるすべての値を取得するSQLクエリ

    3. SQLiteでのTime()関数のしくみ

    4. SQL Server 2008データベースを使用してvb.netまたはC#デスクトップアプリケーションにPower BIレポートとダッシュボードを埋め込む方法はありますか?