2012-02-08 2 views
0

ユーザーが個人的な結果を送信したときに日付または時刻をデータベースファイルに保存しようとしています。 現在、日付や時刻以外の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 
+0

どのデータベースを使用していますか?これは、パラメータクエリまたはストアドプロシージャを使用してデータベースによって処理される可能性がありますが、これはいずれにしても良い考えです。 – Fionnuala

答えて

0

私はクラシックASPで、それはだと思う:あなたが投稿、他の問題の言及として

logtime=now() 
+0

ありがとう!私は今、()と日付()の両方を試しましたが、まだ運がまだありません。更新セクションに問題があると思いますか? Microsoft VBScriptランタイムエラー '800a000d' 型の不一致: '[string: "update table se"]' – user1195283

+0

おそらくデータベースに間違ったフィールドタイプがあります。 –

+0

私のアクセスファイルの "logtime"フィールドでは、テキストと日付/時刻の両方を試しましたが、まだ正しく動作していません。 – user1195283

0

、あなたのソリューションがSQL injectionのセキュリティ上のリスクがあり、パラメタ化されたSQLクエリを使用する必要があります。また、conn.Execute(sql)は実際にはconn.Execute sqlまたはCall conn.Execute(sql)である必要があります。また、parametizedクエリを使用して、日付処理は、例えば、良くなる:

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

アクセスデータベースの場合、あなたがフォーマット

#YYYY-MM-DDの# の下に従わなければならない - いくつかのバージョン意志「YYYY-MM-DD」を受け入れる

ハッピーコーディング!

関連する問題