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

标签 database sqlite escaping

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

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

不幸的是,由于我拥有的工具以及涉及的不同平台/系统的数量,我所处的情况实际上并不是一个选择。

我遇到的问题非常简单,但我似乎无法通过 google、stackoverflow 等找到答案...我只想使用 Webkit 的“executeSql”命令执行类似以下查询的操作:

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

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

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

如果我用反斜杠转义分号 - 运气不好!

sqlite 的文档充其量看起来很平庸,而且我一直无法弄清楚应该如何转义该分号...任何帮助将不胜感激。

最佳答案

这工作正常:

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 语句中的双引号。

关于database - sqlite - 如何在插入语句中转义字符串中的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728903/

相关文章:

python - 使用 RegEx 在 Python 中提取名字和排名

sql - 如何自增非主键? - SQL服务器

swift 4 |正在引用数据库文件进行 SQLite 查询 "unable to open database file"

ios - 检查 SQLite3 数据库是否包含任何数据

javascript - 正则表达式模式太长——需要在 JavaScript 中分割而不使用转义字符

php - 为什么 "\t"不转义这种 PHP 日期格式?

C 转义序列\033[999D 无法正常工作

sql - Postgres 中为一行存储一堆任意 bool 值的最佳方法是什么?

php - Mysql_fetch_array 提供的参数不是有效的 MYSQL 查询

python - 如何将默认 `db.Model` 子类化为使用 SQLAlchemy 的自定义 `Base`