首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQLite查询中使用的转义单引号字符

在SQLite查询中使用的转义单引号字符
EN

Stack Overflow用户
提问于 2009-03-03 03:12:37
回答 6查看 152.7K关注 0票数 200

我编写了数据库模式(到目前为止只有一个表),并将该表的INSERT语句放在一个文件中。然后,我创建了如下数据库:

代码语言:javascript
复制
$ sqlite3 newdatabase.db
SQLite version 3.4.0
Enter ".help" for instructions
sqlite> .read ./schema.sql
SQL error near line 16: near "s": syntax error

我的文件的第16行看起来像这样:

代码语言:javascript
复制
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there\'s');

问题在于单引号的转义字符。我还尝试对单引号进行双转义(使用\\\'而不是\'),但也不起作用。我做错了什么?

EN

回答 6

Stack Overflow用户

发布于 2009-03-02 19:15:58

我相信你会想要通过将单引号加倍来逃脱:

代码语言:javascript
复制
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there''s');
票数 47
EN

Stack Overflow用户

发布于 2018-01-04 09:26:33

要替换字符串中的所有('),请使用

代码语言:javascript
复制
.replace(/\'/g,"''")

示例:

代码语言:javascript
复制
sample = "St. Mary's and St. John's";
escapedSample = sample.replace(/\'/g,"''")
票数 14
EN

Stack Overflow用户

发布于 2017-12-11 15:51:24

以防需要在数据库中插入循环或json字符串。尝试将字符串替换为单引号。这是我的解决方案。例如,如果你有一个包含单引号的字符串。

代码语言:javascript
复制
String mystring = "Sample's";
String myfinalstring = mystring.replace("'","''");

 String query = "INSERT INTO "+table name+" ("+field1+") values ('"+myfinalstring+"')";

这对我在c#和java中很有效。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/603572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档