如何使用ASP过滤从数据库解析的数据

问题描述 投票:0回答:1

我最近接触到一个非常混乱的ASP项目。我不熟悉该语言,但是花了一些时间搜索互联网后,我设法学习了它,但是我仍然不熟悉数据库查询等。

所以这是问题所在,我有这段代码可以从MS Access数据库文件获取数据。我想要的是基于传递的发布/获取参数来过滤此数据。

这里是我到目前为止的代码:

sql = "SELECT * FROM tyres"

if len(brand1) > 2 then 
     sql = sql & " WHERE brand = '" & brand1 & "' AND application = '" & season1 & "'"

if len(brand2) > 2 then 
     sql = sql & " or brand = '" & brand2 & "' AND application = '" & season2 & "'"

if len(brand3) > 2 then 
    sql = sql & " or brand = '" & brand3 & "' AND application = '" & season3 & "'"

if len(brand4) > 2 then 
    sql = sql & " or brand = '" & brand4 & "' AND application = '" & season4 & "'"

if len(brand5) > 2 then 
    sql = sql & " or brand = '" & brand5 & "' AND application = '" & season5 & "'"

set Dataconn = Server.CreateObject("ADODB.Connection") 
Dataconn.Open "database-in"
set DataTable = Server.CreateObject("ADODB.recordset")
DataTable.Open sql, Dataconn

而且似乎不起作用。请注意,用户最多可以插入5个(如您所见)不同的参数,以便在数据库中搜索产品。因此,如果您有任何进一步的信息来使这项工作随便提出,]。

谢谢

我最近接触到一个非常混乱的ASP项目。我不熟悉该语言,但是花了一些时间在互联网上搜索后,我设法学习了它,但我仍然......>

sql database ms-access asp-classic adodb
1个回答
0
投票

从字符串连接创建SQL是非常不明智的,如果这些字符串部分来自用户输入,则甚至直接删除dangerous

ADODB之类的数据库库在这种情况下具有commandsparameters。他们使用带有占位符的固定SQL字符串,并且该库确保无论用户提供的值是什么,都不会发生任何不良情况。

© www.soinside.com 2019 - 2024. All rights reserved.