• 70阅读
  • 3回复

[求助]数据库高手进来一下,帮我看看 SQL 语句的错误。 [复制链接]

上一主题 下一主题
离线wendie
 
发帖
98
祝福宝石
0
威望
1748
玛雅之石
0
创造宝石
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2004-11-03

我以前用霹雳网站系统的,注册后写入收费表都正常,因为卡,不得不换了网站系统,现在的网站系统可以正常注册,但注册后信息不能写入收费表,我也不明白怎么回事,注册页有这样的判断语句的:


<!--#include virtual="conn.asp"-->
<!--#include virtual="NOCACHE.asp"-->
<!--#include virtual="config.asp"-->
<%http = Request.ServerVariables("HTTP_REFERER")
If instr(http,"reg.asp")=0 Then
Response.Redirect "err.asp?id=13"
response.end
end if
Function IsEmail(Email)
ValidFlag = False
If (Email <> "") And (InStr(1, Email, "@") > 0) And (InStr(1, Email, ".") > 0) Then
atCount = 0
SpecialFlag = False
For atLoop = 1 To Len(Email)
atChr = Mid(Email, atLoop, 1)
If atChr = "@" Then atCount = atCount + 1
If (atChr >= Chr(32)) And (atChr <= Chr(44)) Then SpecialFlag = True
If (atChr = Chr(47)) Or (atChr = Chr(96)) Or (atChr >= Chr(123)) Then SpecialFlag = True
If (atChr >= Chr(58)) And (atChr <= Chr(63)) Then SpecialFlag = True
If (atChr >= Chr(91)) And (atChr <= Chr(94)) Then SpecialFlag = True
Next
If (atCount = 1) And (SpecialFlag = False) Then
BadFlag = False
tAry1 = Split(Email, "@")
UserName = tAry1(0)
DomainName = tAry1(1)
If (UserName = "") Or (DomainName = "") Then BadFlag = True
If Mid(DomainName, 1, 1) = "." then BadFlag = True
If Mid(DomainName, Len(DomainName), 1) = "." then BadFlag = True
ValidFlag = True
End If
End If
If BadFlag = True Then ValidFlag = False
IsEmail = ValidFlag
End Function
function checkpass(a)
checkpass=false
for i=1 to len(a)
b=asc(mid(a,i,1))
if b<48 or (b>55 and b<97) or b>122 then
checkpass=true
exit for
end if
next
end function
extcode=int(request.form("extcode"))
extcoded=request.form("extcoded")
ps_loginname=request.form("ps_loginname")
ps_nickname=request.form("ps_nickname")
ps_password=request.form("ps_password")
ps_repassword=request.form("ps_repassword")
ps_email=request.form("ps_email")
ps_question=request.form("ps_question")
ps_answer=request.form("ps_answer")
ps_person_id=request.form("ps_person_id")
if instr(ps_loginname,"'")<>0 or instr(ps_loginname,"=")<>0 or instr(ps_loginname,"&")<>0 or instr(ps_loginname,"%")<>0 then
Response.Redirect "err.asp"
response.end
elseif len(ps_loginname)<6 or len(ps_loginname)>10 then
response.redirect "err.asp?id=1"
response.end
elseif checkpass(ps_loginname)=true then
response.redirect "err.asp?id=2"
response.end
elseif len(ps_person_id) < 15 or len(ps_person_id)=16 or len(ps_person_id)=17 or len(ps_person_id)>18 then
response.redirect "err.asp?id=3"
response.end
elseif isemail(ps_email)=false then
response.redirect "err.asp?id=4"
response.end
elseif len(ps_question)="" or len(ps_answer)="" then
response.redirect "err.asp?id=5"
response.end
elseif len(ps_question) < 6 or len(ps_answer) < 6 then
response.redirect "err.asp?id=6"
response.end
elseif len(ps_nickname)="" then
response.redirect "err.asp?id=7"
response.end
elseif extcode<>int(session("regzcm")) or extcode="" then
response.redirect "err.asp?id=8"
response.end
elseif len(ps_password)<6 or len(ps_password)>15 then
response.redirect "err.asp?id=46"
response.end
elseif ps_password<>ps_repassword then
response.redirect "err.asp?id=47"
response.end
else
set rs1 = Server.CreateObject("ADODB.Recordset")
sql="select * from MEMB_INFO where memb___id = '"&ps_loginname&"'"
rs1.open sql,conn ,1,1
if not rs1.eof then
response.redirect "err.asp?id=9"
response.end
else
set rs2 = Server.CreateObject("ADODB.Recordset")

sql="INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('"&ps_loginname&"','"&ps_password&"','"&ps_nickname&"', '1','1234','11111','"&ps_person_id&"','12343','"&ps_email&"','12345','"&ps_question&"','"&ps_answer&"','1','2003-1-1','2003-1-1','2003-1-1','2003-1-1','0','0','0')"
set rs2=conn.execute(sql)


sql="select memb_guid from MEMB_INFO where memb___id= '"&ps_loginname&"'"
set rs=conn.execute(sql)
musf=rs("memb_guid")
sql2="INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20051111','1',1234,'"&ps_loginname&"','"&ps_nickname&"','"&musf&"','1','6','3','6','6','2003-11-25 00:00:00','0' )"


set rs2=conn.execute(sql2)


if xinshouqian<>0 then
sql3="INSERT INTO warehouse (AccountID,Money ) VALUES ('"&ps_loginname&"',"&xinshouqian&" )"
set rs2=conn.execute(sql3)
end if
end if
end if
set rs2=conn.execute(sql)
set rs2=conn.execute(sql2)
session("regzcm")=""
Session.Abandon
rs1.close
rs2.close
conn.close
set rs1=nothing
set rs2=nothing
set conn=nothing%>


其中这一段,意思应该就是注册成功以后写入收费表数据:


sql="select memb_guid from MEMB_INFO where memb___id= '"&ps_loginname&"'"
set rs=conn.execute(sql)
musf=rs("memb_guid")
sql2="INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('20051111','1',1234,'"&ps_loginname&"','"&ps_nickname&"','"&musf&"','1','6','3','6','6','2003-11-25 00:00:00','0' )"


可是注册成功后就是没有在收费表中写入数据。 我从未学过数据库存,试着编触发器,结果有语法错误,不行,不得不来这里请教高人,帮帮我吧。急死了


[此贴子已经被作者于2004-11-3 3:18:36编辑过]
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线wendie
发帖
98
祝福宝石
0
威望
1748
玛雅之石
0
创造宝石
0
只看该作者 沙发  发表于: 2004-11-03
要崩溃了,搞不清爽。
离线wendie
发帖
98
祝福宝石
0
威望
1748
玛雅之石
0
创造宝石
0
只看该作者 板凳  发表于: 2004-11-03

我编的有语法错误,请高手帮忙看一下,错在哪,应该怎么改好吗?

use MuOnline
go

CREATE TRIGGER [TRIGGER-VI_CURR_INFO] ON [dbo].[memb_info]
FOR INSERT
AS
BEGIN
DECLARE @memb___id nvarchar(10)
SELECT @memb___id= memb___id FROM INSERTED
DECLARE @memb_name nvarchar(10)
SELECT @memb_name= memb_name FROM INSERTED
DECLARE @memb_guid int(4)
SELECT @memb_guid= memb_guid FROM INSERTED
DECLARE @sno__numb nvarchar(18)
SELECT @sno__numb= sno__numb FROM INSERTED

BEGIN insert into VI_CURR_INFO (ends_days,chek_code,used_time,memb_name,memb_guid,sno__numb,Bill_Section,Bill_Value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days,memb___id)
values (20051111,1,1234,@memb___id,@memb_name,@memb_guid,@sno__numb,6,3,0,0,2004-11-2 15:00:00,2004-11-2 18:00:00)
END
END

离线wendie
发帖
98
祝福宝石
0
威望
1748
玛雅之石
0
创造宝石
0
只看该作者 地板  发表于: 2004-11-03
有人在吗?
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个

      管理员联系信箱 [email protected] 所有内容均来之互联网,如侵犯您的隐私和权益,请和我们及时联系!