手机
当前位置:查字典教程网 >编程开发 >数据库其他 >数据库查询中遭遇特殊字符导致问题的解决方法
数据库查询中遭遇特殊字符导致问题的解决方法
摘要:数据库查询中的特殊字符的问题在进行数据库的查询时,会经常遇到这样的情况:例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的...

数据库查询中的特殊字符的问题

在进行数据库的查询时,会经常遇到这样的情况:

例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的

字符,例如单引号,“|”号,双引号或者连字符“&”。

例如他的名字是1"test,密码是A|&900

这时当你执行以下的查询语句时,肯定会报错:

SQL="SELECT*FROMSecurityLevelWHEREUID=""&UserID&"""

SQL=SQL&"ANDPWD=""&Password&"""

因为你的SQL将会是这样:

SELECT*FROMSecurityLevelWHEREUID="1"test"ANDPWD="A|&900"

在SQL中,"|"为分割字段用的,显然会出错了。现在提供下面的几个函数专门用来处理这些头疼的东西数据库转义字符:

复制代码 代码如下:

FunctionReplaceStr(TextIn,ByValSearchStrAsString,_

ByValReplacementAsString,_

ByValCompModeAsInteger)

DimWorkTextAsString,PointerAsInteger

IfIsNull(TextIn)Then

ReplaceStr=Null

Else

WorkText=TextIn

Pointer=InStr(1,WorkText,SearchStr,CompMode)

DoWhilePointer>0

WorkText=Left(WorkText,Pointer-1)&Replacement&_

Mid(WorkText,Pointer+Len(SearchStr))

Pointer=InStr(Pointer+Len(Replacement),WorkText,SearchStr,CompMode)

Loop

ReplaceStr=WorkText

EndIf

EndFunction

FunctionSQLFixup(TextIn)

SQLFixup=ReplaceStr(TextIn,""","""",0)

EndFunction

FunctionJetSQLFixup(TextIn)

DimTemp

Temp=ReplaceStr(TextIn,""","""",0)

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

EndFunction

FunctionFindFirstFixup(TextIn)

DimTemp

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

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

EndFunction

有了上面几个函数后,当你在执行一个sql前,请先使用

SQL="SELECT*FROMSecurityLevelWHEREUID=""&SQLFixup(UserID)&"""

SQL=SQL&"ANDPWD=""&SQLFixup(Password)&"""

【数据库查询中遭遇特殊字符导致问题的解决方法】相关文章:

收缩数据库不变小的解决方法

数据库设计规范化的五个要求 推荐收藏

数据库查询排除重复记录的方法

YII2数据库查询实践

mssql数据同步实现数据复制的步骤第1/2页

redis数据库查找key在内存中的位置的方法

node-mysql中防止SQL注入的方法总结

数据库修改多对多的中间表的记录的技巧

在CRUD操作中与业务无关的SQL字段赋值的方法

数据库建立索引的一般依据小结

精品推荐
分类导航