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

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

热门标签:AI电销 呼叫中心市场需求 地方门户网站 网站排名优化 铁路电话系统 Linux服务器 服务外包 百度竞价排名
数据库查询中的特殊字符的问题
在进行数据库的查询时,会经常遇到这样的情况: 
  例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的
字符,例如单引号,“|”号,双引号或者连字符“”。 
  例如他的名字是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)  """ 

标签:兰州 崇左 湘潭 铜川 衡水 仙桃 湖南 黄山

巨人网络通讯声明:本文标题《数据库查询中遭遇特殊字符导致问题的解决方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266