Android SQLite储存单引号出错的解决方法

Android sqlite执行insert,英文单引号报错问题的解决 最近在做下载m3u8视频下载方面,发现往Sqlite中插入下载记录后,下载进度始终为0,通过Log分析发现往Sqlite中插入视频名称中存在英文单引号,解决办法是把英文单引号转换成中文单引号,希望给遇到同样问题的朋友一些帮助。 一:使用ORMLite单引号处理方法 1、问题描述: 09-09 11:17:57.632: E/SQLiteLog(13416): (1) near "s": sy 阅读详情

2021-03-23 18:27:53.473 28763-28982/? E/SQLiteLog: (1) near "k1": syntax error
    
    
    --------- beginning of crash
2021-03-23 18:27:53.475 28763-28982/? E/AndroidRuntime: FATAL EXCEPTION: randomShelfUploadTimer
    Process: com.aplus.goodsshelves, PID: 28763
    android.database.sqlite.SQLiteException: near "k1": syntax error (code 1): , while compiling: update scan_record set is_upload = 1 where expressnum in ( 'YT5322921382500
    ','YT5320915492779
    ','YT9507368079604
    ','75427798072177
    ','4311937881630
    ','MMM={'k1':'769WF','k2':'769NA','k3':'001','k4':'T77','k5':'SF1326783694843','k6':'A1','k7':'c7515832'}
    ','SF1326783694843
    ','773078508974207
    ','YT4759286786382
    ','YT4690138831075
    ','YT4717590828219
    ' )
        at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
        at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:905)
        at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:516)
        at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
        at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
        at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1705)
        at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1636)
        at com.aplus.goodsshelves.activity.BatchGoodsPlaceActivity3.selectScanRecordAndUpload(BatchGoodsPlaceActivity3.java:778)
        at com.aplus.goodsshelves.activity.BatchGoodsPlaceActivity3.access$400(BatchGoodsPlaceActivity3.java:67)
        at com.aplus.goodsshelves.activity.BatchGoodsPlaceActivity3$2.run(BatchGoodsPlaceActivity3.java:193)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)

解决方法:

scanResult = scanResult.replaceAll("'", "''");

 

ESP32-CAM实战:从零构建高精度QR二维码识别系统 本文详细介绍了如何使用ESP32-CAM构建高精度QR二维码识别系统,涵盖硬件配置、开发环境搭建、二维码识别库选择与优化、完整系统实现及实战问题排查。通过优化识别算法和电源管理,系统可实现快速、稳定的二维码识别,适用于物联网设备绑定等场景。 阅读详情

相关推荐

EEG/ERP新手必看:5本神经科学入门书籍推荐(附高清PDF下载)

本文为EEG/ERP研究新手推荐5本神经科学入门书籍,涵盖认知神经科学、数据分析、ERP技术等核心内容。特别推荐《认知神经科学—关于心智的生物学》和《事件相关电位基础》,这些书籍不仅提供理论框架,还包含实用案例和MATLAB代码,帮助研究者快速掌握脑电研究技术。附高清PDF下载,适合实验室小组学习。

weixin_29210727的博客 445

顺丰接口对接-订单创建与取消(java单元测试)

【代码】顺丰接口对接-订单创建与取消(java单元测试)

占星安啦的博客 15万+

告别环境配置噩梦:VSCode + MinGW 下 OpenGL (glad/glm/glfw) 一站式配置指南(含常见错误排查)

本文提供了一份详细的VSCode与MinGW下OpenGL开发环境配置指南,涵盖glad、glm和glfw三大核心库的安装与调试。通过逐步指导解决常见错误,帮助开发者快速搭建高效的OpenGL开发环境,特别适合初学者避免环境配置中的常见陷阱。

weixin_42557803的博客 490

SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode

目录 1. database is locked的原因 (1)多线程访问造成的数据库锁定 (2)执行事务操作未正常关闭 (3)sqlite自身问题 2. 解决办法 (1)办法1 解决问题1:避免重复打开数据库 解决问题2:如果当前执行的是许多sql语句,要用到事务怎么办? 解决问题3:如果在多线程下执行query方法怎么办,如果处理close? 解决问题4:实际使用过程中,很容...

明朗晨光的专栏 1万+

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度

本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。

weixin_28683391的博客 407

Labview执行adbshell操作

一、目录 1、实现思路 2、adbshell工具配置 3、Labview执行命令窗口 1、实现思路 使用Labview的优点: 1、可以配合电源系统或者调用其他接口工具实现更高程度的自动化测试; 2、直接执行Linux相关命令,编写相关执行顺序或者逻辑更简易; --------可以用adbpush命令将.sh的脚本文件推入控制器内部执行; 3、Ubuntu系统比较大,如果只是日常执行脚本测试还是比较占用磁盘空间; 2、adbshell工具配置 1)下载adbshell工具; adbshell工具下载链

zataji的博客 2053

sqlite3 保存特殊字符(/,%...)提示Error: SOLITE ERROR: near “/“: syntax error

使用JSON.stringify把保存的value 转字符串后解决。按照以上代码,sqlite 插入用户信息提示报错。

weixin_41521961的博客 408

UR机械臂正逆运动学解析:从DH参数到8组解的完整求解策略

本文深入解析UR机械臂的正逆运动学求解策略,从DH参数原理到完整的8组解求解方法。详细介绍了正运动学的坐标变换过程,以及逆运动学中Atan2函数和三角恒等变换的应用,并揭示了8组解的产生机制。通过实际案例和调试技巧,帮助工程师掌握UR机械臂运动学求解的核心技术。

weixin_29094775的博客 413

python字典合并

a = { 'k1':'', 'k2':'', 'k3':'', } b = { 'k4':'', 'k5':'', 'k6':'', } # solution 1 c = dict(**b,**a) # solution 2 c = dict(b,**a) # solution 3 c = b.copy() c.update(a) 参考

little_kid_pea的博客 4万+

Windows下CMake编译VTK

选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。

weixin_74239923的博客 841

Multisim14.0仿真应用设计(十六)74LS138译码器应用仿真

74LS138为3线-8线译码器。

zhusl6688的博客 2981

Android SQLite报错

解决办法:①删除表。打开Device File Explorer,打开data,data,com.example.包名,database中的内容删除,重新运行app。②仔细检查表名,修改成与所创建的表名一致。这种错误出现的原因常见的是由于SQLite.class中的表名写错了,与数据库中的表名不一致,导致表名与创建的表的名称不同而出错。

qq_57179318的博客 836

13、多实例任务(multi instance)

多实例任务,是指一个类型的任务需要循环执行多次,包括串行多实例任务和并行多实例任务。

leyoliu的博客 3203

Android内置数据库sqlite执行insert,单引号报错问题的解决

转载请注明出处,谢谢~http://www.cnblogs.com/iOcean/archive/2012/03/02/2377648.html 1.问题描述 SQLiteDatabase mDB = this.getWritableDatabase(); String insertStr = "insert into mTable(id,name,age,ph...

dingtan9103的博客 268

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 使用SQLite保存数据

对于重复数据或结构化数据(例如联系信息),将数据保存到数据库是理想选择。软件包中提供了在 Android 上使用数据库所需的 API。本篇文章介绍在 Android 上使用SQLite数据库。SQL 数据库的主要原则之一是架构,即数据库组织方式的正式声明。架构反映在你用于创建数据库的 SQL 语句中。您可能会发现创建伴随类(称为协定类)很有用,该类以系统化、自记录的方式明确指定了架构的布局。协定类是定义 URI、表和列名称的常量的容器。通过协定类,您可以在同一软件包的所有其他类中使用相同的常量。

tracy的博客 1975

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android sqlite 单引号,从sqlite for iPhone读取单引号编码问题

我为iPhone创建了一个SQLite数据库来存储我的数据(字符串)。我有一些包含'单引号的数据(即不要紧张)。使用SQLite的正常''转义将其插入到数据库中。INSERT INTO todo(test) VALUES('don''t be tense');当我在终端I中选择数据时,可以在记录中看到单引号。don't be tense我的问题是当我读取记录时,单引号不在NSLog中:dont b...

weixin_39804631的博客 150

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

对接顺丰接口相关

今天做了下对接顺丰的接口,对接的是http的接口,这个没什么说的,主要记录下返回的xml格式数据,并解析 import java.io.ByteArrayInputStream; import java.security.MessageDigest; import java.util.HashMap; import java.util.List; import java.util.Map; ...

hq091117的博客 27万+

android Sqlite 单引号冲突问题正确解决思路

# 仅提供问题解决思路 ## 问题: update book_table SET title='Tome's book' where book_id='1008' 则会出现单引号的冲突,Tome's 的单引号会被解释为结束,后面的内容就是错误的了 ## 错解: 网上一般都在说带入title的时候将单引号替换为双单引号等等。之所以这样做还是因为他们仅仅使用了 SQLiteDa...

m0_37165550的博客 363

android:数据保存之SQLite

android开发的时候,数据的保存时少不了的一个重要工作开发内容。今天以本人在开发中总结的经验,来记录说明一下数据保存的一个重要的方法,SQLite数据保存。 SQLite时谷歌提供的一个对于较大数据处理的一种方法,功能比较强大,但是对于手机上的一些数据存储,维护,管理等还是比较方便实用的。它具备以下几大特点: 1.轻量级:使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,

FightSeeker的专栏 1352

android sqlite 单引号,sqlite 数据库 单引号 双引号转义问题

sql语句中,字符串是用单引号来包括起来的,但是如果字符串中有奇数个单引号,就会出现错误,保存失败如:INSERT INTO stop (username,lineid,secid,stoptype,stopname,remark,isSS) VALUES ('5101','3553','5',1002,'MQXR9+o=','let's go',0);转义方法如下:+(NSString*)rep...

weixin_39614322的博客 711

sqlite执行错误:syntax error (code 1): , while compiling

不要怀疑,真的是sql写错了,不是字段类型有问题就是长度限制有问题,或者是日期格式有问题。 实在看不出来,就把sqlite.db文件拷贝出来,找个sqlite数据库查看软件,然后复制报错的sql去执行一下,比在网上搜来搜去有用多了。 ...

qq_836843022的博客 4089

Android-sqlite的命令,保证数据库只有最新的若干条

创建表 //创建表 create table student(sid integer primary key autoincrement not null, gender varchar(20) not null, score integer not null); 增 insert into student(sname,gender,score) values('Li'...

火星男孩的分享空间 736

Android 数据库 ANR的例子

android 开启事务之后,在其他线程是不能进行增删改查操作的。例子如下: 首先,一个线程里面去开启事务,里面对数据库的任何操作都没有。 DBAdapter.getInstance().beginTransaction(); long begin = System.currentTimeMillis(); int a = 5...

weixin_38171245的博客 479

sqlite中字符串含有单引号的处理

SQLite插入有单引号(')的字符串 使用双单引号即可,例如: sql> INSERT INTO xyz VALUES('5 O''clock'); 插入数据库的是:5 0'clock。 sqlite的标准还是用单引号来包装字符串。 sqlite语句里出现的字符串就得做自己做replace("'","''")处理 ...

诚的博客 3121

SQLite 查询语句遇到的坑——条件语句等号后的参数没用单引号括起来的异常

问题的解决的契机是在看欧阳燊先生编著的《Android App开发入门与项目实战》一书,第6章中关于数据库帮助器的源码(UserDBHelper.java)时,看到了在一条查询语句上方的注释“注意条件语句的等号后面要用单引号括起来”,再仔细看他写的查询语句,发下了那对在双引号之内的单引号。于是给自己的代码添加了一对单引号,再测试,问题解决。%s没有用单引号括起来,导致传入的商品编码被当成数字而不是字符了,这样10000以下的编码前面的零都会被清除。只要查询商品编号小于10000的商品时,就会查询失败。

bahamutj的博客 440

pandas tips one

import pandas as pd df1 = pd.DataFrame({'col1':[0,1],'col_left':['a','b']})#按列定义 df2 = pd.DataFrame({'col1':[1,2,2],'col_right':[2,2,2]}) print(df1) ##   col1 col_left ##0     0        a ##1

李奥 - 追梦赤子心 2万+
上一篇: redis学习
下一篇: Java数组分割实现
JianfeiMa
博客等级 码龄10年 61粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值