2013-12-19 35 views
3

我有MS Access的ASP代码,我正在更新我的记录。在更新的时候,我在字符串中加入了像单引号(')这样的特殊字符,它显示了一个错误。当字符串没有特殊字符时,它可以正常工作。从字符串转义特殊字符asp和ms访问查询

请帮忙或给任何解决方案。这是我的代码。

<!--#INCLUDE FILE="ConnStr.asp"--> 
dim fileTitle 
dim fileDescription 
dim fromDateX 
dim toDateX 
dim romTimeX 
dim toTimeX 
dim Location 
dim LocationURL 
dim FileID 


fileTitle= request("fileTitle") 
fileDescription= request("description") 
fromDateX= request("fdate") 
toDateX= request("tdate") 
romTimeX= request("ftime") 
toTimeX= request("ttime") 
Location= request("location") 
LocationURL= request("locationurl") 
FileID= request("jID") 


sql = "Update tblFileInfo Set sFDate='" & fromDateX & "',sTDate='" & toDateX & "', sFTime='" & romTimeX & "',sTTime='" & toTimeX & "',location='" & Location & "', locationURL='" & LocationURL & "', filetitle='" & fileTitle & "', description='" & fileDescription & "' Where ID=" & FileID 

    objConn.Execute(sql) 
    Response.Redirect("adminfiles.asp?msg=save") 
+1

防止ASP.NET中的SQL注入以供您参考:http://www.mikesdotnetting.com/Article/113/Preventing-SQL-Injection-in-ASP.NET –

+1

@Dean Taylor您提供了asp.net示例,我在经典的asp工作...... :( –

+0

它不工作在我的情况下.. –

回答

1

正如前面的回答所提到的,你应该避免由于SQL注入而以这种方式更新或访问数据库。

如果您的脚本仅用于临时数据库更新和个人使用,快速和肮脏的方法是通过使用替换功能再次重复撇号。

sql = "Update tblFileInfo Set sFDate='" & Replace(fromDateX,"'","''") & "' ...." 

或者用等同的HTML替换。

sql = "Update tblFileInfo Set sFDate='" & Replace(fromDateX,"'","&#39;") & "' ...." 

如果您时间紧张,请不要将其用于任何事情,除非快速关闭脚本。不建议在任何其他情况下。