我最近接触到一个非常混乱的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是非常不明智的,如果这些字符串部分来自用户输入,则甚至直接删除dangerous。
ADODB之类的数据库库在这种情况下具有commands和parameters。他们使用带有占位符的固定SQL字符串,并且该库确保无论用户提供的值是什么,都不会发生任何不良情况。