• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    数据库查询中遭遇特殊字符导致问题的解决方法
    数据库查询中的特殊字符的问题
    在进行数据库的查询时,会经常遇到这样的情况: 
      例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的
    字符,例如单引号,“|”号,双引号或者连字符“”。 
      例如他的名字是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)  """ 
    上一篇:识别 MS SQL 各个版本的版本号的方法
    下一篇:替换一个字段的所有非数字字符为空的sql语句
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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