欢迎光临
我们一直在努力

解决在执行数据库查询中的特殊字符的问题

建站超值云服务器,限时71元/月

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

例如想在一个用户数据库中查询他的用户名和他的密码,

但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,“|”号

双引号或者连字符“&”

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

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

sql = "select * from securitylevel where uid=" & userid & ""

sql = sql & " and pwd=" & password & ""

因为你的sql将会是这样:

select * from securitylevel where uid=1test

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) & ""

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 解决在执行数据库查询中的特殊字符的问题
分享到: 更多 (0)

相关推荐

  • 暂无文章