当前位置: 首页 > 面试题库 >

SQLite转义字符串C ++

夏侯航
2023-03-14
问题内容

考虑以下代码

char bar[] = "hello world \"One\", two, 'three'";
char *zSQL = sqlite3_mprintf("INSERT INTO stuff (`foo`) VALUES ('%q');", bar ) ; 
sqlite3_exec(db, zSQL, 0, 0, 0);
sqlite3_free(zSQL);
/* Produces a exception error */

问题在于,SQL语句中的引号没有被转义。如果我使用PHP编程,则在将字符串插入SQL查询之前,将使用sqlite_escape_string之类的函数对字符串进行转义,但是我似乎找不到C
++中的等效函数。我可以构建自己的sqlite_escape_string之类的函数,但我确定必须已经编写/测试了一个…

C ++是否有sqlite_escape_string()等效函数?


问题答案:

否。使用绑定参数。

请参阅:
http :
//www.sqlite.org/c3ref/prepare.html

http://www.sqlite.org/c3ref/bind_blob.html



 类似资料:
  • 问题内容: 我有一个python脚本,可将原始电影文本文件读入sqlite数据库。 我使用re.escape(title)将转义字符添加到字符串中,以使它们在执行插入操作之前是数据库安全的。 为什么这不起作用: 但这有效(在两个位置删除了'): 我不知道。我也不能放弃那些引号,因为它们实际上是电影标题的一部分。谢谢。 问题答案: 你这样做是错的。从字面上看。您应该使用如下参数: 这样,您根本不需要

  • 本文章将介绍Thymeleaf标准表达式语法中的概念。 学习如何在Thymeleaf模板中显示转义值。 已将HTML代码片段设置为上下文模型,并将其作为变量名为的字符串。在第一个div中显示HTML转义字符串,在第二个中显示未转义字符串。 如果要上机实践,请参考:Thymeleaf+SpringMVC5示例项目。这里不再重复创建项目的过程,这里将只介绍如何使用标准表达式和标签。 这里创建一个Mav

  • 问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:

  • 我需要读入带有unicode转义的标准ascii样式字符串,并将其转换为包含utf8编码等价物的std::字符串。因此,例如“\u03a0”(包含6个字符的std::字符串)应转换为包含两个字符的std::字符串,分别为0xCE和0xA0,以原始二进制格式。 如果有一个简单的答案使用icu或boost我会很高兴,但我还没有找到一个。 (这类似于将Unicode字符串转换为转义ASCII字符串,但注

  • 问题内容: 我有以下要发送到NodeJS服务器的JSON字符串: 当字符串包含字符和 在NodeJS服务器上,我正在像这样解析JSON: 有什么想法我可以设法毫无问题地发送所有字符吗? 问题答案: 我会使用一个库来为您创建JSON 。一些选项是: GSON 克罗福德的解放 这将使转义变得更加容易。一个示例(使用)为:

  • 转义一个字符串,以用于HTML。 使用带有正则表达式的 String.replace() 来匹配需要转义的字符,使用一个回调函数使用字典(对象)替换每个字符为器关联的 HTML 实体字符。 const escapeHTML = str => str.replace( /[&<>'"]/g, tag => ({ '&': '&amp;',