2013-12-19 33 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;") & "' ...." 

如果您時間緊張,請不要將其用於任何事情,除非快速關閉腳本。不建議在任何其他情況下。