[問題] ContentProvider 的 sql escape 問題

看板AndroidDev作者 (Mr. Pan)時間10年前 (2015/11/23 16:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好,最近在透過做 ContentProvider 進行 db 存取的時候遇到了一些問題 我想問的是,像是 insert , update 這種透過有 ContentValues 來建立資料的 會不會自動幫我 escape ? 還是說只有透過 SQLiteQueryBuilder 所建立出來的 query 才會幫我 escape ? 我試著使用 DatabaseUtil.sqlEscapeString 來做,不過我發現 DatabaseUtil.sqlEscapeString("你好") , 會得到 '你好' 我原本以為是 DatabaseUtil.sqlEscapeString("你好") => 你好 DatabaseUtil.sqlEscapeString("你'好") => 你''好 這個造成我不小的困擾 orz.... 我現在只要先確定一下,假設我有一個字串 str 內的文字有包含單引號 如: 你'好 那麼我這樣 : ContentValues values=new ContentValues(); values.put("data",str); db.insert( tableName , nullHack , values); 會不會出錯? 如果不會出錯,是因為在呼叫 insert 的時候會自動幫我把 ContentValues 中的文字 escape 嗎 ? 感謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.222.100 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1448267870.A.E77.html
文章代碼(AID): #1MKj1Uvt (AndroidDev)