各位大虾看看我的代码有什么问题

losedxyz 2006-06-06 05:42:23


<%
dim db,connstr
connstr="Dbq="&server.MapPath("bbs.mdb")&"; Driver={Microsoft Access Driver (*.mdb)}"
set db=server.CreateObject("AdoDB.connection")
db.open connstr
dim id,pass
id=request.Form("id")
pass=request.Form("pass")
dim number,sql
sql="select * from 权限 where id='"&id&"' and password = '"&pass&"'"
db.execute sql,number
if number=0 then
response.Redirect("error.asp")
else
response.Redirect("index.asp")
end if
%>

为什么if number=0 then这句总会执行else分句呢?输入错误也执行好象返回的number没有作用。只要改成<0则是总执行第一句,即使输入正确也没用
id和password字段都是文本型的,sql语句应该没什么问题啊

另外象这种sql存在性判断还有什么写法啊?是不是number不太保险?
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
losedxyz 2006-06-07
  • 打赏
  • 举报
回复

为什么我改了方法以后也还是有问题呢?
ADODB.Recordset (0x800A0E7D)
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。
/书_bbs/entry.asp, 第 18 行

就是说,rs.activeconnection=db,可能已被关闭或无效 为什么???


<%
dim id,pass
id=request.Form("id")
pass=request.Form("pass")

dim db,connstr
connstr="Dbq="&server.MapPath("bbs.mdb")&"; Driver={Microsoft Access Driver (*.mdb)}"
set db=server.CreateObject("AdoDB.connection")


Set rs=Server.CreateObject("ADODB.Recordset")
rs.activeconnection=db
dim sql
sql="select * from ?? where id='"&id&"' and password = '"&pass&"'"
rs.Open sql,1

If rs.RecordCount<=0 Then
Response.redirect "error.asp"
Else
Response.redirect "index.asp"

end if


%>
losedxyz 2006-06-06
  • 打赏
  • 举报
回复
恳请大虾赐教
losedxyz 2006-06-06
  • 打赏
  • 举报
回复
这是我在书上看到的写法说是可以判断sql查询的存在性,0好象就是没有。我也不是很明了

那推荐一个替代方法吧?
moodboy1982 2006-06-06
  • 打赏
  • 举报
回复
db.execute sql,number
----------
你这是干什么用?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧