2013-12-19 4 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

내 경우에는 작동하지 않는다. –

답변

0

SQL 삽입에주의하십시오.

매개 변수와 함께 ADO 명령을 사용하거나 삽입/업데이트를 처리하는 저장 프로 시저를 만듭니다. 두 가지 해결책 모두 작은 따옴표로 문제를 해결할 수 있습니다. 좋은 예는 여기에서 찾을 수 있습니다 : 이전 대답은 언급 http://www.xtremevbtalk.com/showthread.php?t=309329#post1337389

1

, 당신은 업데이트를 피하거나 인해 SQL 주입이 방법으로 데이터베이스에 액세스해야합니다. 스크립트가 단지 임시 데이터베이스 업데이트 및 개인적인 사용을위한 경우

는 신속하고 더러운 방법은 교체 기능을 다시 반복하여 어포 스트로피를 탈출하는 것입니다.

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

또는 해당하는 것으로 바꾸십시오.

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

시간 낭비 일 경우 빠른 스크립트 이외에는 사용하지 마십시오. 다른 환경에서는 권장되지 않습니다.

관련 문제