主页 > 知识库 > 数据库查询中遭遇特殊字符导致问题的解决方法

数据库查询中遭遇特殊字符导致问题的解决方法

热门标签:长沙外呼系统平台 电话机器人怎么看余额 怎么修改高德地图标注 漯河电销回拨外呼系统 合肥crm外呼系统加盟 美国地图标注软件下载 西安电话自动外呼系统 硅基电话机器人官网 城市地图标志怎么标注
数据库查询中的特殊字符的问题
在进行数据库的查询时,会经常遇到这样的情况: 
  例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的
字符,例如单引号,“|”号,双引号或者连字符“”。 
  例如他的名字是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)  """ 

标签:广西 济源 商洛 吉林 文山 泸州 玉溪 抚顺

巨人网络通讯声明:本文标题《数据库查询中遭遇特殊字符导致问题的解决方法》,本文关键词  数据库,查询,中,遭遇,特殊,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《数据库查询中遭遇特殊字符导致问题的解决方法》相关的同类信息!
  • 本页收集关于数据库查询中遭遇特殊字符导致问题的解决方法的相关信息资讯供网民参考!
  • 推荐文章