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

Save date and time into a access file while the user submits the results

本文关键字:保存 时间 访问 文件 日期 提交 用户 结果      更新时间:2023-09-26

当用户提交个人结果时,我正试图将日期或时间保存到数据库文件中。目前,我可以使用UPDATE函数保存除日期或时间之外的所有其他信息。我知道有一些函数叫做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注入的安全风险,您应该使用参数化的SQL查询。此外,您的conn.Execute(sql)实际上应该是conn.Execute sqlCall 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

对于访问数据库,您必须遵循以下格式的

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

编码快乐!!