你好,我試圖將數據庫中的電子郵件數據存儲到asp或html。我能讀取數據,但後來當我添加代碼設置storeEmail = BS的Response.Write(「EMAIL_ADDR」)它給我一個錯誤消息,微軟VBScript編譯錯誤「800a0401」不能從數據庫中存儲數據,但我可以從它讀取
預計語句的結束
/login/reset_form.asp,line 44
Set storeEmail = Response.Write bs(「email_addr」)。這裏是我的代碼:
DIM objConn, bs, ossql
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=MSDASQL.1;Password=**;Persist Security Info=True;User ID=**;Data Source=**"
ossql = "SELECT email_addr FROM user WHERE username = '" & strUsername & "' AND system_code= '" & strHealth & "' AND facility_code = '"& strFacility & "'"
Set bs = objConn.Execute(ossql)
DIM storeEmail
Set storeEmail = Response.Write bs("email_addr")
您確實需要參數化您的查詢。這些對sql注入攻擊很有用。我的猜測是你在你的一個字符串變量中有一個單引號。順便說一下,使用response.write不會將列放在數據庫中,它會將其顯示在頁面上。 –
@Sean Lange讓你說response.write不存儲值?它只會讓你有權顯示在網頁上?我的SQL是正確的,我在甲骨文測試,它工作正常。我可以閱讀,但不能存儲價值。 – express
Response.write不會在Oracle中存儲值。 Response.write是用於將html插入到httpresponse中的Response對象的一種方法。如果你想插入數據,你必須運行一個插入語句。爲自己做個忙,不要忽視我對sql注入的評論。你的代碼是一本教科書的例子。 –