注册 登录
编程论坛 ASP技术论坛

[求助]ASP中往数据库传递变量进碰见的问题!简单

lijiong520 发布于 2007-10-20 12:13, 921 次点击

简单的用户注册程序! 下面是遇到的问题和我认为出错的相关的代码!(我估计是传递“密码”这个变量时,遇到问题了)
用户输入页面
选择密码:<input name="userpwd1" type="password" id="userpwd1" size="15" />
确认密码:<input name="userpwd2" type="password" id="userpwd2" size="15" />
又弄了一个判断的JS脚本:

if (document.form1.userpwd1.value=="")
{alert("请输入你的密码");
document.form1.userpwd1.focus()
document.form1.userpwd1.select()
return false;}

if (document.form1.userpwd2.value!=document.form1.userpwd1.value)
{alert("两次输入密码不一致,请重新输入");
document.form1.userpwd1.focus()
document.form1.userpwd1.select()
return false;}

用户处理页面:
<%dim userpwd1
userpwd1=request.Form("userpwd1")'获取密码%>
<%
set myconn=Server.CreateObject("ADODB.Connection")
myconn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&server.Mappath("user.mdb")
myconn.Execute "insert into user (userid,userpwd1,nickname,sex,age,qq,address,mail) values ('"&userid&"','"&userpwd1&"','"&nickname&"','"&sex&"','"&age&"','"&qq&"','"&address&"','"&mail&"')"

myconn.Close
%>
大家看看那个地方有问题, 出现 的错误如下:
错误类型:
Microsoft JET Database Engine (0x80040E14)
INSERT INTO 语句的语法错误。
/用户注册程序/newzc_cl.asp, 第 31 行(也就是myconn.Execute "insert into user (userid,userpwd1,nickname,sex,age,qq,address,mail) values ('"&userid&"','"&userpwd1&"','"&nickname&"','"&sex&"','"&age&"','"&qq&"','"&address&"','"&mail&"')" 这一行)

POST Data:
userid=feng&userpwd1=123456&userpwd2=123456&nickname=nihao&sex=1&age=20&qq=123456&address=&mail=hao@126.com&Submit=%CC%E1%BD%BB
我之所以判断它是出错在密码上,因为我只传递userpwd1这个变量,这里却两个userpwd1=123456&userpwd2=123456 但我不知道怎样修改,大家看看那错了给说一下,谢谢!

10 回复
#2
永夜的极光2007-10-20 12:49
user改成[user]试试看

页面传递userpwd1和wuerpwd2是正常的,因为都在这个表单里面,会一起提交的,你只读第一个就行
#3
lijiong5202007-10-20 13:14
哥们 不行,我想改不改那个User都无所谓的!看看还有别的地方 那里错了
#4
永夜的极光2007-10-20 13:22
user我记得是关键字,要加括号的
你把那些是数字类型的字段的单引号去掉 看看,比如age,比如userid
#5
lijiong5202007-10-20 13:25
我都设置的是文本类型! 那个user是数据库User.mdb中表名user
#6
永夜的极光2007-10-20 13:30
呀,那我搞不定了,我插入数据库都是用rs.addnew的,insert不熟。。

再帮你顶顶,看看别人能不能帮上你吧
#7
lijiong5202007-10-20 17:58
我现在改为用 rs.addnew了,但还出现错误,你看看!
<%
set myconn=Server.CreateObject("ADODB.Connection")
myconn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&server.Mappath("user.mdb")
set rs=server.CreateObject("Adodb.recordset")
rs.open "select * from user",myconn,3,3
rs.addnew
rs("userid")=userid
rs("userpwd1")=userpwd1
rs("nickname")=nickname
rs("sex")=sex
rs("age")=age
rs("qq")=qq
rs("address")=address
rs("mail")=mail
rs.update
rs.close
myconn.Close
%>
现在提示Microsoft JET Database Engine (0x80040E14)
FROM 子句语法错误。
/用户注册程序/newzc_cl.asp, 第 34 行 就是说这一行!~rs.open "select * from user",myconn,3,3
我用这句在以前的学习测试中,都行,现在咋不行了!
#8
tianyu1232007-10-20 18:23
rs.open "select * from user",myconn,3,3


这回再把 user 改为 [user]
#9
lijiong5202007-10-20 18:48
大哥,恩,现在行了!可我有点不明白,以前我用rs.addrew时表名不用加 []也行啊!  这次怎么不加 怎么不行了,你能给我说说为什么吗、
还有 大哥,你把你QQ给我说下吧,我加你! 我的是 591625390  非常谢谢你!
#10
yms1232007-10-20 18:52
[user]
user是数据库的关键字,用这个做表名会冲突。
#11
tianyu1232007-10-20 19:01

1.

[CODE]<%
'推荐使用此连接
set conn=Server.CreateObject("ADODB.Connection")
conn.open"provider=microsoft.jet.oledb.4.0;data source="& Server.MapPath("data.mdb")
%>[/CODE]

2.

[CODE]<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "DRIVER=Driver do Microsoft Access (*.mdb);DBQ="&Server.MapPath("data.mdb")
%>[/CODE]

1的连接代码,需要区分关键字 即:[user]

2的连接代码,不需要区分关键字 即:user


1