题
我们使用stringstream准备选择的查询C++。但是,我们强烈建议使用的查询参数提交db2sql查询,以避免使用的stringstream.任何人都可以分享究竟意味着通过查询参数在C++?此外,分享一些实用的样本代码段。
更好的帮助。
编辑:这是stringstream和不strstream.
谢谢, 马修力聚研发的
解决方案
我怀疑这是指参数化查询,在一般情况下,而不是建造查询中一串,他们提供sql变量(或参数),然后通过这些变量分开。这些都是更好地为处理SQL注射攻击。为了说明一个例子:
"SELECT * FROM Customers WHERE CustomerId = " + _customerId;
是坏的,而这样的:
"SELECT * FROM Customers where CustomerId = @CustomerId"
是好的。美中不足的是,你需要添加的参数,以查询对象(我不知道这是怎么做C++。
提到的其他问题:
- https://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks
- 存储程序vs参数化查询
狂野Web:
其他提示
在参数化的查询形式SQL查询比字符串格式安全,以避免SQL注入攻击。 参数化的查询的示例
StringBuilder sqlstr = new StringBuilder();
cmd.Parameters.AddWithValue("@companyid", CompanyID);
sqlstr.Append("SELECT evtconfigurationId, companyid,
configname, configimage FROM SCEVT_CONFIGURATIONS ");
sqlstr.Append("WHERE companyid=@companyid ");
查询字符串格式的实施例
StringBuilder sqlstr = new StringBuilder();
sqlstr.Append("SELECT evtconfigurationId, companyid, configname,
configimage FROM SCEVT_CONFIGURATIONS ");
sqlstr.Append("WHERE companyid" + CompanyID);
不隶属于 StackOverflow