标题:sql脚本有关单双引号及出错
只看楼主
贝裘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-17
 问题点数:0 回复次数:5 
sql脚本有关单双引号及出错


下面两行脚本不知怎么写才是正确的,

sqlstr = "select*from user where nickname='"& account
sqlstr = & "'and password='"& password &"'"
set recordset=conn.execute(sqlstr)


显示器显示出错误原因:

错误类型:
Microsoft VBScript 编译器错误 (0x800A03EA)
语法错误
/asp/rlogon.asp, line 15, column 9
sqlstr = & "'and password='"& password &"'"
--------^


但不知如何改,
并且set recordset=conn.execute(sqlstr)中的sqlstr是指上面的两个呢,还是第二个就属于第一个的一部分语句呢,会不会是单双引号用错了呢???

请高手高敲贵手,帮忙解答.

搜索更多相关主题的帖子: 单双 引号 脚本 sql 
2006-10-17 16:05
贝裘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-17
得分:0 

<%
account=request.querystring("nickname")
password=request.querystring("password")
set conn=server.createobject("adodb.connection")
conn.open ("dsn=exam")
SQLStr = "select * from user where nickname='" & account&"'"
'"SQLStr = & "' and password='" & password & "'
set recordset=conn.execute(sqlstr)

if not recordset.eof then
if recordset("sex")="男" then
title="先生"
else
title="女士"
end if
response.write(recordset("name") & title &":<br>您好呀!登录成功哦,请我吃饭,呵呵...")
else
response.write("对不起,登录未成功,请验证帐号和密码是否输入正确!再请输入!")
end if
conn.close
set recordset=nothing
set conn=nothing
%>



终于都被自己搞定啦.自己动手答复一下吧,哈哈
(没想到自己还有点儿聪明呢,--哎呀,别让人家知道,我苦苦思索费了九牛二虎的脑力改动了半天)


世界上因为有了热心人而更加温暧美好! 衷心的谢谢一起来交流的朋友了.愿我们交流得更好,进步得更快.
2006-10-17 17:05
贝裘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-17
得分:0 
果然是单双引号惹的祸!第二个sqlstr是第一个sqlstr的一部分语句来的.但是这个
"SQLStr = & "' and password='"设这个语句不知具体是舍意思,和是否有必要设,
我还是个超级的门外汉,真是走得一步一个雷池呀,一个问题解决了,另一个问题又出现了.
累,郁闷!

世界上因为有了热心人而更加温暧美好! 衷心的谢谢一起来交流的朋友了.愿我们交流得更好,进步得更快.
2006-10-17 17:10
Philomena
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2006-8-23
得分:0 
sqlstr = "select * from user where nickname='"& account
sqlstr = & "'and password='"& password &"'"
set recordset=conn.execute(sqlstr)


应该这样写


sqlstr="select * from user where nickname="&"'account'" &"and password="&"'password'"
不知道有没有错,你先试一下


2006-10-19 09:24
贝裘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-17
得分:0 
为什么from字句中表名和字段名要加中括号????

但是您所说也不对,但很高兴有人一起来交流,谢谢指教.
我后来在网上查了查,按提示改成如下的蓝色行的语句就OK了,是加了中括号在表示表名和字段名的地方.
为什么要这样改我却也不明其意了.唉!!!!
<%
account=request.querystring("nickname")
password=request.querystring("password")
db="panpet.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.Open connstr
SQLStr ="select * from [user] where [nickname]='"& account &"'and [password]='"& password &"' "
set recordset=conn.execute(SQLStr)

if not recordset.eof then
if recordset("sex")="男" then
title="先生"
else
title="女士"
end if
response.write(recordset("name") & title &":<br>太好了!登录成功啦,为了表示庆祝,您请我吃饭,呵呵...")

else
response.write("哎呀,登录未能成功--(看来你不想请我吃饭吧),请验证帐号和密码是否输入正确!再请输入!(我已经点好菜啦,不过会挂你大名的,..呵呵)")
end if
conn.close
set recordset=nothing
set conn=nothing
%>


世界上因为有了热心人而更加温暧美好! 衷心的谢谢一起来交流的朋友了.愿我们交流得更好,进步得更快.
2006-10-23 16:24
贝裘
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-17
得分:0 

上面的回复中,后来经过调试,发现nickname和password这两个字段是不用加中括号的,只是user是sql的保留字段.所以还是得加中括号.
在此补上对自己解答的更正.


世界上因为有了热心人而更加温暧美好! 衷心的谢谢一起来交流的朋友了.愿我们交流得更好,进步得更快.
2006-10-27 14:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-96924-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062974 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved