当用户提交个人结果时,我正试图将日期或时间保存到数据库文件中。目前,我可以使用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 sql
或Call 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"
编码快乐!!