我们使用 stringstream 在 C++ 中准备选择查询。但我们强烈建议使用 QUERY PARAMETERS 提交 db2 sql 查询以避免使用 stringstream。任何人都可以分享 C++ 中查询参数的确切含义吗?另外,分享一些实用的示例代码片段。
提前感谢帮助。
编辑:它是 stringstream 而不是 strstream。
谢谢, 马修 Liju
我们使用 stringstream 在 C++ 中准备选择查询。但我们强烈建议使用 QUERY PARAMETERS 提交 db2 sql 查询以避免使用 stringstream。任何人都可以分享 C++ 中查询参数的确切含义吗?另外,分享一些实用的示例代码片段。
提前感谢帮助。
编辑:它是 stringstream 而不是 strstream。
谢谢, 马修 Liju
我怀疑这通常指的是参数化查询,而不是在字符串中构造查询,它们提供 sql 变量(或参数),然后分别传递这些变量。这些对于处理 SQL 注入攻击要好得多。用一个例子来说明:
"SELECT * FROM Customers WHERE CustomerId = " + _customerId;
不好,虽然这样:
"SELECT * FROM Customers where CustomerId = @CustomerId"
很好。问题是您必须将参数添加到查询对象(我不知道这是如何在 C++ 中完成的。
参考其他问题:
狂野的网络:
参数化查询形式的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);