2011-08-30 72 views
1

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

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

我的问题是,我如何编码这些字符串?有我能指望的功能吗?或者一张详细列出所有需要的编码的表格?

谢谢! :-)

回答

2

而不是手动转义字符串(这是容易出错,并邀请SQL注入攻击),我强烈建议使用预处理语句和绑定值;请阅读sqlite3_bind_XXX和sqlite3_prepare_v2

0

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

1

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