解决ASP执行DB查询中的特殊字符问题

梦里相约3

梦里相约3

2016-01-29 18:55

解决ASP执行DB查询中的特殊字符问题,解决ASP执行DB查询中的特殊字符问题
 

作者: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)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

  Dim Temp

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/asp/)

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

End Function


  有了上面几个函数后,当你在执行一个sql前,请先使用:
  SQL = "SELECT * FROM SecurityLevel WHERE UID='" & SQLFixup(UserID) & "'"
  SQL = SQL & " AND PWD='" & SQLFixup(Password) & "'"

 
展开更多 50%)
分享

猜你喜欢

解决ASP执行DB查询中的特殊字符问题

ASP
解决ASP执行DB查询中的特殊字符问题

JavaScript中的特殊字符

Web开发
JavaScript中的特殊字符

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Bash中的特殊字符

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Bash中的特殊字符

wps中如何输入特殊字符?

电脑入门
wps中如何输入特殊字符?

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用ASP解决域名登记查询

ASP
用ASP解决域名登记查询

如何在Mac中输入特殊字符

电脑入门
如何在Mac中输入特殊字符

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PS鼠绘神采飞扬的时尚美女

PS鼠绘神采飞扬的时尚美女

ASP访问INTERBASE数据库

ASP访问INTERBASE数据库
下拉加载更多内容 ↓