怎样解决语法错误 (操作符丢失) 在查询表达式 'userid=' 中
ifRequest.Form("hid")<>""thensql1="selectmax(returntime)asmaxtimefromborrowinfowhereu...
if Request.Form("hid")<>"" then
sql1="select max(returntime) as maxtime from borrowinfo where userid="&session("user")&""
set rs1=conn.execute(sql1)
sql2="select title from readerinfo where userid="&session(user)&""
set rs2=conn.execute(sql2)
sql3="select num,term from readerterm where identity='"&rs2("title")&"'"
set rs3=conn.execute(sql3)
sql4="select count(*) from borrowinfo where userid="&session(user)&""
set rs4=conn.execute(sql4)
if rs1("maxtime")<date() then
Response.Redirect "borrow.asp?comm=已借图书超期,不能借书!"
else
if rs4(0)=rs3("num") then
Response.Redirect "borrow.asp?comm=已借满图书,不能再借书!"
else
book_id=request.form("book_id")
present=date()
tpresent=dateadd("d",rs3("term"),present)
sql5="insert into borrowinfo(userid,bookid,bookname,borrowtime,returntime)"
sql5=sql5&"values("&id&","&bookid&",'"&bookname&"','"&present&"','"&tpresent&"')"
conn.execute(sql5)
sql6="update bookinfo set base='否'where bookid='"&session(user)&"'"
Response.Redirect "borrow.asp?comm=此书已借!"
end if
end if
end if%>
浏览器问题:
错误类型:
Microsoft JET Database Engine (0x80040E14)
语法错误 (操作符丢失) 在查询表达式 'userid=' 中。
/tsgl/borrow.asp, 第 108 行
浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
网页:
POST 40 ??? /tsgl/borrow.asp
POST Data:
book_id=32313&hid=ok&Submit=%BD%E8%CA%E9
问题:
1.此代码编写是否正确(是借书时候验证是否超期和已经借满)?
2.浏览器中出现的问题
谢谢! 展开
sql1="select max(returntime) as maxtime from borrowinfo where userid="&session("user")&""
set rs1=conn.execute(sql1)
sql2="select title from readerinfo where userid="&session(user)&""
set rs2=conn.execute(sql2)
sql3="select num,term from readerterm where identity='"&rs2("title")&"'"
set rs3=conn.execute(sql3)
sql4="select count(*) from borrowinfo where userid="&session(user)&""
set rs4=conn.execute(sql4)
if rs1("maxtime")<date() then
Response.Redirect "borrow.asp?comm=已借图书超期,不能借书!"
else
if rs4(0)=rs3("num") then
Response.Redirect "borrow.asp?comm=已借满图书,不能再借书!"
else
book_id=request.form("book_id")
present=date()
tpresent=dateadd("d",rs3("term"),present)
sql5="insert into borrowinfo(userid,bookid,bookname,borrowtime,returntime)"
sql5=sql5&"values("&id&","&bookid&",'"&bookname&"','"&present&"','"&tpresent&"')"
conn.execute(sql5)
sql6="update bookinfo set base='否'where bookid='"&session(user)&"'"
Response.Redirect "borrow.asp?comm=此书已借!"
end if
end if
end if%>
浏览器问题:
错误类型:
Microsoft JET Database Engine (0x80040E14)
语法错误 (操作符丢失) 在查询表达式 'userid=' 中。
/tsgl/borrow.asp, 第 108 行
浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
网页:
POST 40 ??? /tsgl/borrow.asp
POST Data:
book_id=32313&hid=ok&Submit=%BD%E8%CA%E9
问题:
1.此代码编写是否正确(是借书时候验证是否超期和已经借满)?
2.浏览器中出现的问题
谢谢! 展开
5个回答
展开全部
都是sql语句的问题,建议你能理解 & 字符和""
& 表示连接连字符串
如a= "hello"
a= a & "world"
这时a="helloworld"
被一对""包含的是字符串常量,a是字符变量,"hello"、"world"是字符串常量。
你那句
sql2="select title from readerinfo where userid="&session(user)&""
sql2的值是字符串常量"select title from readerinfo where userid="连接session(user)然后再连接""
因此如果你的 表readerinfo 的字段userid为字符型的话,变量应该用""括起来,因为外面有了"",所以要用'',例如sql="select * from readerinfo where userid='0'"
如果你的 表readerinfo 的字段userid为数字的话,就不用""了
例如sql="select * from readerinfo where userid=0"
这里你要查的userid为一个变量session(user)
因此要这么写:
当userid为数值类型的话:sql="select * from readerinfo where " & session(user)。sql的值是由一个字符串常量和一个变量连接成的
当userid为字符类型的话:sql="select * from readerinfo where '" &session(user) & "'"。sql的值是由一个字符串常量和一个变量连接成再加一个字符串连接成的
sql4是同一样的问题
sql5
sql5="insert into borrowinfo(userid,bookid,bookname,borrowtime,returntime)"
sql5=sql5&"values("&id&","&bookid&",'"&bookname&"','"&present&"','"&tpresent&"')"
如果你的id和bookid都是数值型的两边就不要有'了,否则要有'
& 表示连接连字符串
如a= "hello"
a= a & "world"
这时a="helloworld"
被一对""包含的是字符串常量,a是字符变量,"hello"、"world"是字符串常量。
你那句
sql2="select title from readerinfo where userid="&session(user)&""
sql2的值是字符串常量"select title from readerinfo where userid="连接session(user)然后再连接""
因此如果你的 表readerinfo 的字段userid为字符型的话,变量应该用""括起来,因为外面有了"",所以要用'',例如sql="select * from readerinfo where userid='0'"
如果你的 表readerinfo 的字段userid为数字的话,就不用""了
例如sql="select * from readerinfo where userid=0"
这里你要查的userid为一个变量session(user)
因此要这么写:
当userid为数值类型的话:sql="select * from readerinfo where " & session(user)。sql的值是由一个字符串常量和一个变量连接成的
当userid为字符类型的话:sql="select * from readerinfo where '" &session(user) & "'"。sql的值是由一个字符串常量和一个变量连接成再加一个字符串连接成的
sql4是同一样的问题
sql5
sql5="insert into borrowinfo(userid,bookid,bookname,borrowtime,returntime)"
sql5=sql5&"values("&id&","&bookid&",'"&bookname&"','"&present&"','"&tpresent&"')"
如果你的id和bookid都是数值型的两边就不要有'了,否则要有'
展开全部
你都用的“where userid="&session("user")&"" ”
估计是你的session("user")的值为空,你Response.Write session("user")
看一看,另外,你的userid是什么类型的字段?你上面的语句只能使用数字,不能使用文本的~
估计是你的session("user")的值为空,你Response.Write session("user")
看一看,另外,你的userid是什么类型的字段?你上面的语句只能使用数字,不能使用文本的~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
where userid='"&session("user")&"'"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先确保session("user")已经取到值并且为数字类型
sql1="select max(returntime) as maxtime from borrowinfo where userid="&session("user")
sql1="select max(returntime) as maxtime from borrowinfo where userid="&session("user")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql="select
*
from
job
where
userid='"&companyid&"'
and
durge=1
order
by
[time]
desc"
或者
sql="select
*
from
job
where
userid=1
and
durge=1
order
by
[time]
desc"
试试
*
from
job
where
userid='"&companyid&"'
and
durge=1
order
by
[time]
desc"
或者
sql="select
*
from
job
where
userid=1
and
durge=1
order
by
[time]
desc"
试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询