源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-07-17 09:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:数据库查询中遭遇特殊字符导致问题的解决方法
数据库查询中的特殊字符的问题 在进行数据库的查询时,会经常遇到这样的情况:    例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的 字符,例如单引号,“|”号,双引号或者连字符“&”。    例如他的名字是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中,"|"为分割字段用的,显然会出错了。现在提供下面的几个函数专门用来处理这些头疼的东西数据库 转义字符:
[u]复制代码[/u] 代码如下:
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) & """ 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部