sqlite - 如何在insert语句中转义字符串中的分号

时间:2012-05-23 22:46:02

标签: database sqlite escaping

编辑:问题解决了......与问题的措辞无关...抱歉浪费时间: - \

我意识到,当iOS和Android等平台(如果您正在编写手机应用程序)拥有此工具时,您通常会想要使用某种抽象层,而不是为SQLite编写自己的插入语句

不幸的是,由于我可以使用的工具以及所涉及的不同平台/系统的数量,我不是一个真正的选择。

我遇到的问题非常简单,但我似乎无法通过google,stackoverflow等找到答案......我只是想做一些类似下面的查询,使用Webkit' s& #34;的ExecuteSQL"命令:

INSERT INTO someTable VALUES (''some string'', ''some string with a semicolon; in it'');

问题是 - 除非我删除分号,否则会失败。 (注意:加倍的单引号是因为发送到webkit的executeSql命令的语句需要被转义..也许这是问题的一部分?)

如果我从第二个字段中的字符串中取出分号 - 语句运行正常......

如果我用反斜杠逃脱分号 - 没有运气!

sqlite的文档充其量只是平庸,我一直无法弄清楚我应该如何逃过分号......任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

这很好用:

CREATE Table DummyTable(FirstCol VARCHAR(25), SecondCol VARCHAR(25));
INSERT INTO DummyTable VALUES ('This is a test', 'This is test two; OK?');
SELECT * FROM DummyTable;

-- output
FirstCol                  SecondCol
========================= ========================= 
This is a test            This is test two; OK?

问题似乎是SQL语句中引号加倍。