代码之家  ›  专栏  ›  技术社区  ›  Liju Mathew

C++中的“查询参数”是什么?

  •  0
  • Liju Mathew  · 技术社区  · 16 年前

    我们使用字符串流在C++中准备选择查询。但强烈建议我们使用QUERY参数来提交db2 sql查询,以避免使用字符串流。有人能分享一下C++中查询参数的确切含义吗?此外,分享一些实用的示例代码片段。

    提前感谢您的帮助。

    编辑:它是字符串流,而不是字符串流。

    谢谢, 马修·李菊

    2 回复  |  直到 16 年前
        1
  •  3
  •   Community CDub    8 年前

    我怀疑这通常是指参数化查询,而不是在字符串中构造查询,它们提供sql变量(或参数),然后分别传递这些变量。这些方法更适合处理SQL注入攻击。举例说明:

    "SELECT * FROM Customers WHERE CustomerId = " + _customerId; 
    

    这很糟糕,而这:

    "SELECT * FROM Customers where CustomerId = @CustomerId" 
    

    很好。问题是,你必须将参数添加到查询对象中(我不知道在C++中是如何做到的。

    其他问题的参考:

    狂野网络:

        2
  •  1
  •   Nakul Chaudhary    16 年前

    参数化查询形式的Sql查询比字符串格式的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);