[问题] 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