Сохраните дату и время в файле доступа, пока пользователь отправляет результаты - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь сохранить дату или время в файле базы данных, когда пользователь отправляет личные результаты. В настоящее время я могу сохранить всю другую информацию с помощью функции ОБНОВЛЕНИЕ, кроме даты или времени. Я знаю, что есть функции с именами 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

Ответы [ 3 ]

0 голосов
/ 09 февраля 2012

Как уже упоминалось в другом вопросе, который вы опубликовали, ваше решение имеет риск безопасности 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
0 голосов
/ 09 февраля 2012

Для доступа к базе данных вы должны следовать приведенному ниже формату

# ГГГГ-ММ-ДД # - некоторые версии будут принимать 'ГГГГ-ММ-ДД'

Счастливое кодирование !!

0 голосов
/ 09 февраля 2012

Я думаю, что в Classic ASP это:

logtime=now()
...