有人可以帮我解决这个问题吗?它给了我一个又一个错误,我不知道它的问题是什么。
我的代码:
<%
Dim cnnSimple ' ADO connection
Dim rstSimple ' ADO recordset
Set cnnSimple = Server.CreateObject("ADODB.Connection")
' DSNLess
cnnSimple.Open "MY CONNECTIONS STRING INFO HERE"
cnnSimple.Execute("insert into SALT (Email, Username, FirstName, LastName, ActivationCode) VALUES ('" & Request.QueryString("payer_email") & "', '" & Request.QueryString("payer_email") & "', '" & Request.QueryString("first_name") & "', '" & Request.QueryString("last_name") & "', '" & Request.QueryString("hash") & "')")
rstSimple.Close
Set rstSimple = Nothing
cnnSimple.Close
Set cnnSimple = Nothing
%>
错误:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/thanks.asp, line 65
谢谢
第 65 行是:
cnnSimple.Execute("insert into SALT (Email, Username, FirstName, LastName, ActivationCode) VALUES ('" & Request.QueryString("payer_email") & "', '" & Request.QueryString("payer_email") & "', '" & Request.QueryString("first_name") & "', '" & Request.QueryString("last_name") & "', '" & Request.QueryString("hash") & "')")
最佳答案
该错误意味着使用了尚未实例化的对象。从给出的代码片段来看,您似乎正在尝试关闭记录集而不实例化它。
您的意思是将 rstSimple 设置为 cnnSimple.Execute() 的结果吗?
编辑:现在我已经查看了另一个问题,我所建议的可能不是问题。正如人们所指出的,在将 Request 对象中的数据插入到字符串中之前,您应该真正清理它(安全或不安全,这些变量之一中的撇号将杀死该语句)。
有可能(我对 VBScript 的内存非常模糊)如果 Execute() 语句失败,则不会向 rstSimple 分配任何内容,并且对 rstSimple.Close() 的调用将生成您所看到的错误消息。
在调用 cnnSimple.Execute() 之前尝试将 rstSimple 设置为新的 ADODB.Recordset,看看是否能解决该问题...
关于SQL/ASP - 预期为 : "- But it' s there?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3376016/