欢迎光临
我们一直在努力

解决ASP执行DB查询中的特殊字符问题-ASP教程,ASP技巧

建站超值云服务器,限时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) & “”

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

相关推荐

  • 暂无文章