提示有语法错误,可我怎么看都没错!!

flybird99 2004-12-03 09:46:49
if founderr=false or request.Form("check")<>"" then
set rs=server.createobject("adodb.recordset")
sql="select * from user where u_name="&u_name
response.Write sql
response.End()
rs.open sql,conn,1,3
if not(rs.bof and rs.eof) then
founderr=true
errmsg=errmsg & "<br><li>“" & u_Name & "”已经存在!请换一个用户名再试试!</li>"
else
rs addnew

rs("u_name")=u_name
rs("u_password")=md5(u_password)
rs("u_email")=u_email
rs("u_question")=u_question
rs("u_reply")=u_reply
rs("u_date")=formatdatetime(now(),2)
if u_occupation<>"" then
rs("u_occupation")=u_occupation
end if
if u_favor<>"" then
rs("u_favor")=u_favor
end if
rs.update
rs.close
set rs=nothing
end if
end if


主要内容就在这段,提示:
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'

在关键字 'user' 附近有语法错误。

/user/user_reg2.asp,行 63

(也就是‘rs.open sql,conn,1,3’这一行,说明上一行的sql句子有问题,可我没看出有错,我用的是sql sever数据库,连接、权限都没问题)
...全文
595 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
flybird99 2004-12-03
  • 打赏
  • 举报
回复
我在添写用户帐号加了个检测按扭,我也希望在用户添写完整个表单后也有这个检测,我用一个检测语句,如我最上面所列,但条件句加的不对,怎么加条件句才能两都兼顾
dwowbaaa 2004-12-03
  • 打赏
  • 举报
回复
sql中的保留字

action add aggregate all
alter after and as
asc avg avg_row_length auto_increment
between bigint bit binary
blob bool both by
cascade case char character
change check checksum column
columns comment constraint create
cross current_date current_time current_timestamp
data database databases date
datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear
dec decimal default delayed
delay_key_write delete desc describe
distinct distinctrow double drop
end else escape escaped
enclosed enum explain exists
fields file first float
float4 float8 flush foreign
from for full function
global grant grants group
having heap high_priority hour
hour_minute hour_second hosts identified
ignore in index infile
inner insert insert_id int
integer interval int1 int2
int3 int4 int8 into
if is isam join
key keys kill last_insert_id
leading left length like
lines limit load local
lock logs long longblob
longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second
modify month monthname myisam
natural numeric no not
null on optimize option
optionally or order outer
outfile pack_keys partial password
precision primary procedure process
processlist privileges read real
references reload regexp rename
replace restrict returns revoke
rlike row rows second
select set show shutdown
smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join
starting status string table
tables temporary terminated text
then time timestamp tinyblob
tinytext tinyint trailing to
type use using unique
unlock unsigned update usage
values varchar variables varying
varbinary with write when
where year year_month zerofill


SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 "

sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "

sql="select top 10 * from 数据表 where 字段名 order by 字段名 "

sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

4. 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录


判断所填数据是数字型

if not isNumeric(request("字段名称")) then
response.write "不是数字"
else
response.write "数字"
end if

  • 打赏
  • 举报
回复
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) --> sql语句出错(字段名错误,或数据类型不匹配)


数据库里面呢~??还有user好象是保留字?? 改成 [user] 试试~~
  • 打赏
  • 举报
回复
Active Server Pages, ASP 0126 (0x80004005) --> 找不到包含文件

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21) --> sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) --> sql语句出错(字段名错误,或数据类型不匹配)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) --> sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E57) --> sql语句出错(要插入或更新的数据溢出)
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) --> sql语句出错(update字段名或要更新的数据类型错误)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) --> sql语句出错(要插入或更新的字段的数值不能为空值)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)  --> 打开数据库出错,没有在指定目录发现数据库
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37) --> 没有发现表

Microsoft VBScript 运行时错误 (0x800A000D) --> 错误引用rs变量(rs对像已关闭或未定义)
Microsoft VBScript 运行时错误 (0x800A01C2) --> vbscript脚本错误(vbscript语句出错)
Microsoft VBScript 运行时错误 (0x800A0006) --> vbscript脚本错误(溢出错误)
Microsoft VBScript 编译器错误 (0x800A040E) --> 缺少loop
Microsoft VBScript 编译器错误 (0x800A03EA) --> 缺少if或end if
Microsoft VBScript 编译器错误 (0x800A03EE) --> 语句未结束(缺少")")
Microsoft VBScript 编译器错误 (0x800A03F6) --> if语句出错(缺少end if)
Microsoft VBScript 运行时错误 (0x800A005B) --> 缺少set
Microsoft VBScript 运行时错误 (0x800A0005) --> 变量未定义
Microsoft VBScript 编译器错误 (0x800A03F9) --> if语句缺少then
Microsoft VBScript 编译器错误 (0x800A0411) --> dim语句定义错误
Microsoft VBScript 编译器错误 (0x800A0408) --> sql语句错误(?????????????????)


ADODB.Recordset (0x800A0BB9) --> sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误)
ADODB.Recordset (0x800A0CC1) --> rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名)
ADODB.Recordset (0x800A0BCD) --> rs对像出错(记录集中没有记录却对记录集进行操作)
ADODB.Recordset (0x800A0E78) --> rs对像出错(记录集不存在,缺少rs.open语句)
ADODB.Recordset (0x800A0CC1) --> rs对像出错(引用了一个不存在的字段名)
ADODB.Recordset (0x800A0E7D) --> conn定义错误
ADODB.Recordset (0x800A0CB3) --> 数据库以只读方式打开,无法更新数据。
dwowbaaa 2004-12-03
  • 打赏
  • 举报
回复
加上

server_vv=len(Request.ServerVariables("SERVER_NAME"))'域名的长度
server_v1=left(Cstr(Request.ServerVariables("HTTP_REFERER")),server_vv)'来路的左边
server_v2=left(Cstr("http://"&Request.ServerVariables("SERVER_NAME")),server_vv)'来路的名称
if server_v1<>server_v2 or server_v1="" or server_v1="" then
response.write("<script>alert('错误:禁止从站点外部提交数据!.')</script>")
Response.Redirect("index.asp")
response.end
end if
dwowbaaa 2004-12-03
  • 打赏
  • 举报
回复
if u_occupation<>"" then
rs("u_occupation")=u_occupation
end if

to

rs("u_occupation")=u_occupation
flybird99 2004-12-03
  • 打赏
  • 举报
回复
69行好了,我再看看
dwowbaaa 2004-12-03
  • 打赏
  • 举报
回复
rs.addnew
cailover 2004-12-03
  • 打赏
  • 举报
回复
rs.addnew
dwowbaaa 2004-12-03
  • 打赏
  • 举报
回复
sql="select * from [user] where u_name='" & u_name &"'"
flybird99 2004-12-03
  • 打赏
  • 举报
回复
改了,不过又有新的错误提示:
Microsoft VBScript 运行时错误 错误 '800a01c2'

错误的参数个数或无效的参数属性值: 'rs'

/user/user_reg2.asp,行 69

(就是‘rs addnew’这一行)
yjb136 2004-12-03
  • 打赏
  • 举报
回复
sql="select * from user where u_name="&u_name少了结束
sql="select * from user where u_name='"& u_name &"'"这样才对,

再了不要查询所有的,你有那一个查那一个以防留下更多的漏洞

HHH3000 2004-12-03
  • 打赏
  • 举报
回复
sql="select * from user where u_name='"& u_name &"'"
winter699 2004-12-03
  • 打赏
  • 举报
回复
sql="select * from user where u_name='" & u_name &"'"
lienzhu 2004-12-03
  • 打赏
  • 举报
回复
sql="select * from [user] where u_name='" & u_name &"'"

28,408

社区成员

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

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