首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android SQLite 字串條件查詢崩潰:正確使用單引號或 selectionArgs 防注入

     編輯:程式設計綜合問答

在 SQLiteDatabase.query() 中使用字串條件時,若未加單引號,SQL 會將字串視為欄位名稱導致語法錯誤或崩潰。

錯誤寫法

Cursor c = db.query(TABLE, columns, KEY_STATUS + "=available", null, null, null, null);

正確寫法一:手動加單引號

Cursor c = db.query(TABLE, columns, KEY_STATUS + "='available'", null, null, null, null);

正確寫法二:使用 selectionArgs(推薦)

String status = "available";
Cursor c = db.query(TABLE, columns, KEY_STATUS + "=?", new String[]{status}, null, null, null);

優點

  • 自動處理引號與特殊字元轉義。
  • 防止 SQL 注入攻擊。
  • 程式碼更清晰,參數與條件分離。

適用場景

所有動態字串條件查詢,特別是使用者輸入內容時,強烈建議使用 selectionArgs。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved