这里,你可能会考虑重构采取功能在一个字符串中,你可以在代码中的任何地方重新使用。
所以有一个const或建立你的SQL语句的字符串,并在弹出SANITIZED,非SQL INJECTED字符串作为参数:)
即
strSQL = "SELECT * FROM Customer WHERE ID = " & EnsureParamIsNotSQLInjection(customerID)
...然后调用函数/子从任何你需要得到一个记录集/数据/执行语句。考虑创建一些数据访问函数/子文件,您可以只运行UPDATE语句或检索单个值或检索完整的记录集。
这里的关键是让这些功能都住在一个地方,并在整个地方重复使用它们。以下是VBScript中的示例。
Sub DoStuff(strSQL)
Set adoCon = Server.CreateObject("ADODB.Connection")
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db\Database.mdb")
'strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\Database.mdb")
adoCon.Open strConnString
Set rsMain = Server.CreateObject("ADODB.Recordset")
rsMain.Open strSQL, adoCon
Do While NOT rsMain.EOF
customerName = rsMain("CustomerName") 'silly example
RsMain.MoveNext
Loop
rsMain.Close
Set adoCon = Nothing
End Sub
对不起,如果他们帮助它总是好了投票的好人谁帮助你了如下:) – Justin 2009-07-12 00:58:50
@Justin。更安全的做不.EOF ... – 2009-07-12 07:16:48