我编写了数据库模式(到目前为止只有一个表),并将该表的INSERT语句放在一个文件中。然后,我创建了如下数据库:
$ 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行看起来像这样:
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there\'s');
问题在于单引号的转义字符。我还尝试对单引号进行双转义(使用\\\'
而不是\'
),但也不起作用。我做错了什么?
发布于 2009-03-02 19:15:58
我相信你会想要通过将单引号加倍来逃脱:
INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there''s');
发布于 2018-01-04 09:26:33
要替换字符串中的所有('),请使用
.replace(/\'/g,"''")
示例:
sample = "St. Mary's and St. John's";
escapedSample = sample.replace(/\'/g,"''")
发布于 2017-12-11 15:51:24
以防需要在数据库中插入循环或json字符串。尝试将字符串替换为单引号。这是我的解决方案。例如,如果你有一个包含单引号的字符串。
String mystring = "Sample's";
String myfinalstring = mystring.replace("'","''");
String query = "INSERT INTO "+table name+" ("+field1+") values ('"+myfinalstring+"')";
这对我在c#和java中很有效。
https://stackoverflow.com/questions/603572
复制相似问题