0

我在 TestComplete 的循环中使用查询,每次循环完成时,都会使用新值更新变量。我想考虑变量中撇号的可能性,以便我可以使用一个查询。例如:

i = 0;

while(i < companyCount)
{                             
    result = CompanyAddress(company);
    Log.Message(result);
    i++;
}

“CompanyAddress”是我存储在另一个脚本文件中的查询,“company”是被传递的变量。

SELECT address FROM table WHERE name = '" + company + "';

我尝试了 REPLACE(),但在第二次迭代时并没有解决问题。

4

2 回答 2

-1

要在 SQL 字符串中转义撇号,请使用双撇号:

SET @name = "Dan''s example"

但最好的方法是对查询进行参数化,这也有助于防止 SQL 注入。

于 2018-03-06T19:58:23.983 回答
-2

我错误地使用了我在最初解释中提到的 REPLACE() 方法。

我将带有单引号的变量发送到查询:

var test = "agwh'waf'2";

但是当我将它包含在查询中时,我使用了以下内容:

"select * from table where name = " + test.replace(/'/g, "\'\'");

这在运行查询之前用两个单引号替换了我的变量中的单引号。

于 2018-03-08T19:33:12.003 回答