标题:初学ASP,在insert语句上有错误,请指教
只看楼主
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
 问题点数:0 回复次数:18 
初学ASP,在insert语句上有错误,请指教
sqlstr="insert into users(name,age,address,telephone,login,password,notes,power)
values('"&request("name")&"',"&request("age")&","&request("address")&"',
"&request("telephone")&"',"&request("login")&"',"&request("password")&"',
"&request("notes")&"',"&request("power")&")"


错误类型:
Microsoft VBScript 编译器错误 (0x800A0409)
未结束的字符串常量
/addnew01.asp, line 26, column 80
sqlstr="insert into users(name,age,address,telephone,login,password,notes,power)
-------------------------------------------------------------------------------^


哪地方错了???
对着书找了好几次,没发现

给讲讲sqlstr串中的那些标点符号的意思吧,我看的头晕了
搜索更多相关主题的帖子: insert 语句 ASP 初学 指教 
2007-07-30 21:58
愿望
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2007-7-28
得分:0 
sqlstr="insert into users(name,age,address,telephone,login,password,notes,power)
values('"&request("name")&"',"&request("age")&",'"&request("address")&"',
'"&request("telephone")&"','"&request("login")&"','"&request("password")&"',
'"&request("notes")&"',"&request("power")&")"
你字符串两端的单引号配对全乱了
同志还需努力啊

2007-07-30 22:10
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
得分:0 

谢谢

我把你帮改的代码复制到ASP页,还是出错同样的错误提示

开始学ASP,对这段代码中的单双引号不明白,能讲讲吗?

为什么它没有单引号?是忘记改了还是没有
"&request("age")&"

我改成'"&request("age")&"'后,还是同样的错误提示,为什么????

2007-07-30 22:19
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
得分:0 
单引号‘’是SQL语句表示字符型的语法;
双引号“”是asp(vbscript)表示字符型的语法


这点弄懂了,难呀
2007-07-30 22:22
愿望
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2007-7-28
得分:0 
发现原因了:
vb 中的字符串是不能断行的,你把所有内容放在一行就行了
如果非要多行,可以用:

sqlstr="insert into users(name,age,address,telephone,login,password,notes,power)" & _
"values('"&request("name")&"',"&request("age")&",'"&request("address")&"'," & _
"'"&request("telephone")&"','"&request("login")&"','"&request("password")&"'," & _
"'"&request("notes")&"',"&request("power")&")"

单引号在 sql 中的功能是用来括起字符串的
而 age 两旁不用是因为我估计你的 age 是整型值的,数字就不需要单引号括起了
telephone 旁边的引号可能也不需要(如果你的 telephone 字段是整型的话)

2007-07-30 22:25
愿望
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2007-7-28
得分:0 
如果你对单引号双引号以及类型机制感觉很迷茫的话,建议可以学 javascript
js 弱类型,并且字符串既可以由单引号也可以用双引号括起

2007-07-30 22:27
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
得分:0 
终弄对了,原来是人为加入 回车 的原因

把回车全去了,可以通过了。
2007-07-30 22:30
愿望
Rank: 1
等 级:新手上路
威 望:1
帖 子:111
专家分:0
注 册:2007-7-28
得分:0 

一般的代码断行还可以,但除了 PHP 和 Lua 好像没什么语言允许字符串断行的 :(

2007-07-30 22:31
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
得分:0 
vb可以用 _ 断行。

2007-07-31 07:30
midas
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-6-30
得分:0 

sqlstr代码行,把password 与 '"&request("password")&"' 去掉,


sqlstr="insert into users(name,age,address,telephone,login,power,notes) values('"&request("name")&"','"&request("age")&"','"&request("address")&"','"&request("telephone")&"','"&request("login")&"','"&request("power")&"','"&request("notes")&"')"

conn.execute(sqlstr)

可以正常运行,成功增加数据,但加上password 与 '"&request("password")&"' 就出错,为什么?

或是改成sqlstr="insert into users(password) values('"&request("password")&"')" 也是出错,




错误类型:
Microsoft JET Database Engine (0x80040E14)
INSERT INTO 语句的语法错误。
/addnew01.asp, 第 33 行

2007-07-31 07:42



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




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

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