ASP Classic SQL查询无法按预期工作

ASP Classic SQL查询无法按预期工作,sql,asp-classic,Sql,Asp Classic,我在HTML中使用ASP创建网站。 在我的一个页面上,SQL查询sqlString=SELECT*FROM Property\u Details,其中&_ 价格介于“&minPrice&”和“&maxPrice&”之间&_ 或者像“&搜索&”这样的地址 用于搜索数据库并根据表单上的内容显示正确的条目。这适用于查询的Address_2部分,但中间部分不能正常工作。 minPrice和maxPrice都是在前面声明的,并且采用了正确的表单数据,因为我已经用我缺少的内容对其进行了测试。我认为您的min

我在HTML中使用ASP创建网站。 在我的一个页面上,SQL查询sqlString=SELECT*FROM Property\u Details,其中&_ 价格介于“&minPrice&”和“&maxPrice&”之间&_ 或者像“&搜索&”这样的地址 用于搜索数据库并根据表单上的内容显示正确的条目。这适用于查询的Address_2部分,但中间部分不能正常工作。 minPrice和maxPrice都是在前面声明的,并且采用了正确的表单数据,因为我已经用我缺少的内容对其进行了测试。

我认为您的minPrice和maxPrice是数字,所以您不需要撇号。当前,您的查询得到的SQL与此类似:

SELECT * FROM Property_Details 
WHERE Price BETWEEN '10' AND '20'
因为10和20是数字,所以你不应该在它们周围使用'。尝试将查询更改为以下内容:

sqlString = "SELECT * FROM Property_Details WHERE " &_
" Price BETWEEN " & minPrice & " AND " & maxPrice & " " &_
"OR Address_2 LIKE '" & searchFor & "'  "

作为旁注-我不知道minPrice、maxPrice和searchFor来自何处,但如果它们来自用户输入,您可能容易受到攻击

谢谢,它们声明为searchFor=Replace Request.Form searchFor',maxPrice=Replace Request.Form maxPrice',minPrice=Replace Request.Form minPrice',快速提问,如果数据库条目是长整数,我是否需要使用CLng转换这些值?您需要在查询中将原始数字传递给minPrice和maxPrice,因此请尝试将传入值转换为数字。你似乎很容易受到SQL注入攻击,关于如何修复替换函数是我的尝试,网络上有多个来源,我第一次用“or=”闯入我的网站,并用这个函数阻止了它。你有一个我如何将原始数字传递给minPrice和MaxPrice的例子吗?我尝试使用maxPrice=CLng maxPrice转换它们,但这不起作用