asp的sql更新语言

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:32:13
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from [user] where userip='"&Request.ServerVariables("REMOTE_ADDR")&"'",conn,1,3
rs("userip")=trim(Request.ServerVariables("REMOTE_ADDR"))
rs("lastdate")=now
rs("loginnum")=rs("loginnum")+1
if userip<>trim(Request.ServerVariables("REMOTE_ADDR")) then
rs.addnew
else
rs.update
end if
rs.close
set rs=nothing
%>
如果访客的ip地址和数据库中的userip相同的话,则更新数据库,访问次数+1,访问的最后一次时间更新;否则数据都加入数据库,请高手指教应该怎么修改~
注:
数据库中表名为user,(userip char(15);loginnum smallint(2);lastdate datetime(8)),userip是主键
<%
userip=request.servervariables("http_x_forwarded_for")
if userip=""then
userip=request.servervariables("remote_addr")
end if
%>
<%
set rs=server.CreateObject("adodb.r

你没判断 RS是不是空就进行操作了?这样的程序不完善啊。
而且取IP地址也不能单用Request.ServerVariables("REMOTE_ADDR")

userip=request.servervariables("http_x_forwarded_for")
if userip=""then
userip=request.servervariables("remote_addr")
end if
如果客户端通过代理服务器,则取http_x_forwarded_for的值,如果没有,就取remote_addr的值

你还是没判断是否为空啊!!!!1

你至少要加上
if not rs.eof then
XXXXXXXXX
end if
明白不? 如果不判断的话就直接用 是不健全的

把rs的count 打出来看看 估计是0

f (rs.recordcount=0) or (rs("userip")<>trim(userip)) then
就有问题
你必须保证你的记录不是空的情况下
才能用rs("userip")
先判断 (rs.recordcount=0)
然后在判断(rs("userip")<>trim(userip))

在语句
[rs.open "select * from [user] where userip='"&Request.ServerVariables("REMOTE_ADDR")&"'",conn,1,3]
后面判断记录数量。 如果数量>0 则更新数据库,否则做相应的处理

set rs=server.CreateObject("adodb.recordset")
rs