我試圖阻止注入在我的觸發器(創建或不依賴於首選項)。使用SQLite觸發器與參數
我使用
公共無效execSQL(SQL字符串,對象[] bindArgs)
我有我的觸發一個 「?」並在bindArgs中傳遞我的值。
的問題是,我創建觸發器
03-13 13:43:49.136: E/SQLiteLog(21865): (1) trigger cannot use variables
03-13 13:43:49.137: W/System.err(21865): android.database.sqlite.SQLiteException: trigger cannot use variables (code 1): , while compiling:
CREATE TRIGGER IF NOT EXISTS
my_trigger
INSERT ON table_1 BEGIN DELETE
FROM table_2
WHERE col1 = new.col1
AND col2 = ?
END;
它看起來像我不能使用參數以創建觸發器查詢,但我不明白爲什麼的過程中收到錯誤。如果我替換「?」我在字符串的值,並使用
公共無效execSQL(SQL字符串)
這項工作得很好,但我想創建一個字符串值,觸發了我不想檢查SQLInjection。
任何人解釋爲什麼我不能使用
公共無效execSQL(SQL字符串,對象[] bindArgs)
的觸發(即使android documentation說,否則)
例如,以下是使用此方法的好候選者:
創建或刪除表/觸發/視圖/索引/虛擬表
...
那麼,我只是要創建一個很好的方法來防止注射,我會很好。再次感謝! – AxelH 2015-03-13 13:30:56