你好,我试图将数据库中的电子邮件数据存储到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注入的评论。你的代码是一本教科书的例子。 –