关于ASP里的INSERT的问题?

coollele 2000-06-12 05:15:00
我做了个注册页面,当用户提交时,就要用到下面这段程式,可是用第一段就成功,当我换上第二段的代码时,就提示语法错,我查过书,书上的就是和我第二段写的一样,1、为什么第二段代码不行呢?2、请解释第一段代码的意思, 3、特别是那些“+”号4、还有为什么要那么多的引号呢??

sql = "Insert into guys( username,nickname, userid, password, email)"_
+ " values('" + Request.Form("nickname") + "','" _
+ Request.Form ("username") + "','"_
+ Request.Form("userid") + "','" _
+ Request.Form("password") + "','" _
+ Request.Form("email") + "')"
conn.Execute sql

sql = "insert into guys(username,nickname,userid,password,email) _
valuse ("Reqeust.Form(username)", _
"Request.Form(nickname)", _
"Request.Form(userid)", _
"Request.Form(password)", _
"Request.Form(email))
conn.Execute sql


...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
w102272 2000-06-13
  • 打赏
  • 举报
回复
你还要注意空值问题,
如果你的网页没有传递用REQUEST能够获取的实际可用参数
在很多数据库系统中,这种插入可能会导致违反数据表对字段的约束而失败。
stellaxyq 2000-06-13
  • 打赏
  • 举报
回复
那些加号其实是字符串连接的运算符,用&也可以的
jl_zhy 2000-06-13
  • 打赏
  • 举报
回复
还应加一个过滤如果你的Reqeust.Form("somevalue")值包含双引号怎么办
先用一个
replace(Thevalue,""","''")
<%
function replit(Thevaluevalue)
replit=replace(Thevalue,""","''")
end function
%>
然后把request来的值先付给一个变量,检查是否为空,如果你的这个值是空,而
你在设计数据库时令它为 not Null 则你应做个处理了。

反正最后你在conn.Execute sql 之前
先response.write sql
response.end 一下,
应这样:

insert into guys(username,nickname,userid,password,email) valuses ("username","nickname",userid,"password","email")



beta 2000-06-12
  • 打赏
  • 举报
回复
看下面的代码:
sql = "insert into guys(username,nickname,userid,password,email) _
valuse ('Reqeust.Form(username)', _
'Request.Form(nickname)', _
'Request.Form(userid)', _
'Request.Form(password)', _
'Request.Form(email))
conn.Execute sql


WHQ 2000-06-12
  • 打赏
  • 举报
回复
数据库中的字段为字符型,因此传的内容必须为一个字符串,在SQL语言中,字符串是有单引号括起来的。Request.Form("...")的内容本身虽然是一个串,但输出的结果中不带引号,于是在SQL语句中就被解释为字段名之类的东西了。
coollele 2000-06-12
  • 打赏
  • 举报
回复
刚刚上面写错了字,valuse 应该是values,真是对不起!!!!!

28,390

社区成员

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

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