Javascript 在用户提交结果时,将日期和时间保存到access文件中

Javascript 在用户提交结果时,将日期和时间保存到access文件中,javascript,sql,asp-classic,vbscript,Javascript,Sql,Asp Classic,Vbscript,当用户提交个人结果时,我试图将日期或时间保存到数据库文件中。 目前,我可以使用更新功能保存除日期或时间之外的所有其他信息。我知道有一些函数叫做date()和now(),用于日期操作。但我就是做不好。不要太担心SQL注入;这只是我自己用的 部分代码如下: id=request.QueryString("id") name=request.Form("name") sex=request.Form("sex") age=request.Form("age") logtime=date() // I

当用户提交个人结果时,我试图将日期或时间保存到数据库文件中。 目前,我可以使用更新功能保存除日期或时间之外的所有其他信息。我知道有一些函数叫做date()和now(),用于日期操作。但我就是做不好。不要太担心SQL注入;这只是我自己用的

部分代码如下:

id=request.QueryString("id")
name=request.Form("name")
sex=request.Form("sex")
age=request.Form("age")
logtime=date()  // I am not sure if this is correct 
sql="select * from table where id="&id
set rs=conn.execute(sql)
sql="update table set name='"+name+"', sex='"+sex+"', age='"+age+"', logtime='"+logtime+"' where id="&id // for the logtime='"+logtime+"', I think it is also not correct.
'response.Write sql
conn.execute(sql)
conn.close
set conn=nothing

我认为在经典ASP中:

logtime=now()

正如在您发布的另一个问题中提到的,您的解决方案存在安全风险,您应该使用参数化SQL查询。此外,您的
conn.Execute(sql)
实际上应该是
conn.executesql
调用conn.Execute(sql)
。此外,通过使用参数化查询,日期处理变得更好,例如:

id = request.QueryString("id")
name=request.Form("name")
sex = request.Form("sex")
age = CInt(request.Form("age"))
logtime = Now

sql = "update user_table" & vbCrLf
sql = sql & "set name = @name, sex = @sex, age = @age, logtime = @logtime" & vbCrLf
sql = sql & "where id = @id" & vbCrLf

Set cmd = CreateObject("ADODB.Command")
cmd.CommandText = sql
Set cmd.ActiveConnection = conn
cmd.Prepared = True
cmd.Parameters.Refresh 
cmd.Parameters("@name") = name
cmd.Parameters("@sex") = sex
cmd.Parameters("@age") = age
cmd.Parameters("@logtime") = logtime
cmd.Parameters("@id") = id
cmd.Execute
Set cmd = nothing

对于access数据库,您必须遵循以下格式

#YYYY-MM-DD# --某些版本将接受“YYYY-MM-DD”


快乐编码

谢谢大家!!我两次都试过了,现在()和日期(),现在仍然很幸运。你认为更新部分有什么问题吗?它一直告诉我Microsoft VBScript运行时错误“800a000d”类型不匹配:“[string:“update table se”]”对于我的access文件中的“logtime”字段,我尝试了文本和日期/时间,但仍然无法正常工作。请发布生成的SQL字符串。可能是语法问题。非常感谢你的建议。我再次尝试并使用logtime=CStr(Now()),它工作得非常完美!!您正在使用哪个数据库?这似乎可以由数据库通过参数查询或存储过程来处理,这将是一个好主意。