[問題] ContentProvider 的 sql escape 問題

作者: darkk6 (Mr. Pan)   2015-11-23 16:37:48
大家好,最近在透過做 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 嗎 ?
感謝大家~

Links booklink

Contact Us: admin [ a t ] ucptt.com