编码字符串以便插入SQLite

时间:2011-08-30 12:01:08

标签: sql sqlite sqlcommand

我正在使用sqlite3_exec()函数来执行SQL Insert命令。当我需要插入需要编码的字符串时,问题就开始了。

例如,我想插入以下字符串:“f('hello')”。如果我想插入此字符串,我需要将“'”更改为“''”。

我的问题是,如何编码这些字符串?有可以依靠的功能吗?或详细说明所有需要的编码的表格?

谢谢! : - )

4 个答案:

答案 0 :(得分:3)

我强烈建议使用预准备语句和绑定值,而不是手动转义字符串(容易出错并引发SQL注入攻击)。阅读sqlite3_bind_XXX和sqlite3_prepare_v2

答案 1 :(得分:1)

使用绑定值将解决此问题,并且它还将使sqlite更快,因为它记住以前执行的sql语句,并且它可以重用其执行计划。当sql语句总是略有不同时,这不起作用,因为它散列了完整的sql语句。

答案 2 :(得分:0)

sqlite_mprintf支持%q

答案 3 :(得分:0)

“也许”你应该使用类似预备陈述的东西。我不是SQLite的专家,但我找到了这个链接(http://www.sqlite.org/c3ref/stmt.html),它可以帮助你。它与SQL语句对象有关。