sqlite中插入单引号
发布时间:2020-12-12 20:07:35 所属栏目:百科 来源:网络整理
导读:通常我们在数据库中插入数据时,为了防止数据中的特殊字符导致SQL语法错误,会在插入的内容前后加上单引号。 例如我们有如下数据表: CREATE TABLE `xs_sessions` ( `session_uuid` VARCHAR(36) NOT NULL,`teacher_uuid` VARCHAR(36) NOT NULL,`name` VARCHA
通常我们在数据库中插入数据时,为了防止数据中的特殊字符导致SQL语法错误,会在插入的内容前后加上单引号。 例如我们有如下数据表: CREATE TABLE `xs_sessions` ( `session_uuid` VARCHAR(36) NOT NULL,`teacher_uuid` VARCHAR(36) NOT NULL,`name` VARCHAR(128) NOT NULL,`icon_path_name` VARCHAR(255),`create_date_time` DATETIME NOT NULL,`modify_date_time` DATETIME NOT NULL,PRIMARY KEY (`session_uuid`),FOREIGN KEY (`teacher_uuid`) REFERENCES `xs_user` (`user_uuid`)); 现在往其中插入一条数据,考虑到字段中有空格,我们会在所有value的前后都加上单引号,例如: insert into xs_sessions values('S-01','T-01','primary english','icon_path_name','create_date_time','modify_date_time'); 这样可以避免value中包含反斜杠,逗号,句号,分号等各种符号的影响,但是如果value中包含单引号则会导致语法错误。 解决办法为将单引号都改为两个单引号即可,例如上例中如果name为mary's english,那么插入语句为: insert into xs_sessions values('S-02','mary''s english','modify_date_time'); 查询结果为: S-02|T-01|mary's english|icon_path_name|create_date_time|modify_date_time 表示我们的插入是正确的。 官方的描述:How do I use a string literal that contains an embedded single-quote (') character?
update: 在android开发中,如果使用ContentValues来insert/update数据,则android会自动处理单引号的情况,只有在开发者手动写sql语句时才需要采取上述做法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |