Android内置数据库sqlite执行insert,单引号报错问题的解决
来源:互联网 发布:用移动网络玩游戏 编辑:程序博客网 时间:2024/06/05 07:45
Android内置数据库sqlite执行insert,单引号报错问题的解决
转载请注明出处,谢谢~http://www.cnblogs.com/iOcean/archive/2012/03/02/2377648.html
1.问题描述
1
2
3
SQLiteDatabase mDB =
this
.getWritableDatabase();
String insertStr =
"insert into mTable(id,name,age,phone) values(1,'iOcean's','80','110')"
;
mDB.execSQL(insertStr);
注:数据可能是server拿来的数据,为说明问题此处临时写死的。
当执行该代码时后台就会报异常如下:
insert Exception:android.database.sqlite.SQLiteException: near "s": syntax error: insert into mTable(id,name,age,phone) values(1,'iOcean's','80','110')
很明显,是因为单引号引起的。
2.解决方法:
先是考虑的可不可以手动转义后insert,但是简单的使用String的replace方法不行,仍会报错
str.replace("'", "\\\\'");就算这种方法可行,但是引起问题的还有可能是其他字符,所以这种思路比较麻烦。那就换换喽^_^
后来查资料发现,SQLiteDatabase类的execSQL方法有两个,上面是其一execSQL (String sql),而另一个为execSQL (String sql, Object[] bindArgs)
而该方法支持使用占位符参数(?),所以试试喽,结果该方法对特殊字符通吃,嘛4么有,呵呵~
所以代码可以这样了:
1
2
3
4
SQLiteDatabase mDB =
this
.getWritableDatabase();
String insertStr =
"insert into mTable(id,name,age,phone) values(?,?,?,?)"
;
Object[] mValue =
new
Object[]{
1
,
"iOcean's"
,
"80"
,
"110"
);
mDB.execSQL(insertStr, mValue);
Just for dream, u know! 转载请注明出处:http://www.cnblogs.com/iOcean
0 0
- Android内置数据库sqlite执行insert,单引号报错问题的解决
- Android sqlite执行insert,英文单引号报错问题的解决
- Android内置数据库SQLite
- android- 数据库 模糊搜索, 单引号 ’ 报错问题(SQLiteException: unrecognized token: “‘)
- SqLite数据库中单引号的转义
- android之SQLite数据库insert操作
- insert语句插入的值中含有单引号解决:
- php插入单引号到数据库报错
- android 内置关系型数据库 SQLite
- sqlite单引号的处理
- 解决Android多线程访问SQLite数据库死锁问题
- Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题
- 【Unity】Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题
- 解决android数据库降级时,sqlite不支持drop column的问题
- 数据库SQL、SQLite语句单引号、双引号的用法
- [已解决]android SQLite报错 no such table
- 使用cfqueryparam解决cfquery的单引号问题。
- JS中单引号双引号问题的解决
- SqlServer 2012 发送邮件问题
- PorterDuffXfermode的用法
- Java编写的显示url信息的方法
- 卡特兰数 卡特兰前1000000项带mod
- 特殊回文数
- Android内置数据库sqlite执行insert,单引号报错问题的解决
- java method TestJava4_9 方法的参数与返回值
- 结构体字节对齐和位域对齐——VC、gcc
- js 对象 与 json之间的相互转化
- How to Build and Run Android NDK Examples?
- UIScrollView的delaysContentTouches与canCencelContentTouches属性
- MFC单文档应用程序问题
- POI颜色类型
- 一道算法题