国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

解決ASP執行DB查詢中的特殊字符問題

2019-11-18 19:17:11
字體:
來源:轉載
供稿:網友

作者:csbq

  在進行數據庫的查詢時,會經常遇到這樣的情況:
  例如想在一個用戶數據庫中查詢他的用戶名和他的密碼,但恰好該用戶使用的名字和密碼中有特殊的字符,例如單引號,“|”號,雙引號或者連字符“&”。

  例如他的名字是1'test,密碼是A|&900,這時當你執行以下的查詢語句時,肯定會報錯:
  SQL = "SELECT * FROM SecurityLevel WHERE UID='" & UserID & "'"
  SQL = SQL & " AND PWD='" & PassWord & "'"

  因為你的SQL將會是這樣:
  SELECT * FROM SecurityLevel WHERE UID='1'test' AND PWD='A|&900'

  在SQL中,"|"為分割字段用的,顯然會出錯了。現在提供下面的幾個函數,專門用來處理這些頭疼的東西:
Function ReplaceStr (TextIn, ByVal SearchStr As String, _

  ByVal Replacement As String, _

  ByVal CompMode As Integer)

  Dim WorkText As String, Pointer As Integer

If IsNull(TextIn) Then

  ReplaceStr = Null

Else

  WorkText = TextIn

  Pointer = InStr(1, WorkText, SearchStr, CompMode)

Do While Pointer > 0

  WorkText = Left(WorkText, Pointer - 1) & Replacement & _

  Mid(WorkText, Pointer + Len(SearchStr))

  Pointer = InStr(Pointer + Len(Replacement), WorkText, _

  SearchStr, CompMode)

Loop

  ReplaceStr = WorkText

End If

End Function


Function SQLFixup(TextIn)

  SQLFixup = ReplaceStr(TextIn, "'", "''", 0)

End Function


Function JetSQLFixup(TextIn)

  Dim Temp

  Temp = ReplaceStr(TextIn, "'", "''", 0)

  JetSQLFixup = ReplaceStr(Temp, "|", "' & chr(124) & '", 0)

End Function


Function FindFirstFixup(TextIn)

  Dim Temp

  Temp = ReplaceStr(TextIn, "'", "' & chr(39) & '", 0)

  FindFirstFixup = ReplaceStr(Temp, "|", "' & chr(124) & '", 0)

End Function


  有了上面幾個函數后,當你在執行一個sql前,請先使用:
  SQL = "SELECT * FROM SecurityLevel WHERE UID='" & SQLFixup(UserID) & "'"
  SQL = SQL & " AND PWD='" & SQLFixup(Password) & "'"


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长子县| 长岭县| 岫岩| 翼城县| 平原县| 南昌县| 富锦市| 清新县| 乌海市| 闸北区| 石棉县| 德江县| 仙桃市| 贵溪市| 中宁县| 长岛县| 杭锦旗| 舞钢市| 山西省| 双牌县| 互助| 霍山县| 贵港市| 鸡泽县| 通辽市| 海原县| 双鸭山市| 个旧市| 大同县| 九台市| 中超| 商南县| 亚东县| 海林市| 许昌市| 布拖县| 锦屏县| 麻栗坡县| 射洪县| 清远市| 阳谷县|