SQL/ASP - 预期为 : "- But it' s there?

标签 sql asp-classic vbscript ado

有人可以帮我解决这个问题吗?它给了我一个又一个错误,我不知道它的问题是什么。

我的代码:

<%
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/

相关文章:

vbscript - 没有 ... 移位运算符时的移位

php - MySql没有输出

android - 使用 ODBC 和 ASP 将我的 Android 应用程序连接到 MySQL

mysql - 带有加权分数的 Sql 流行度算法

asp.net - ASP/.NET 在不使用 ODBC 或任何驱动程序的情况下连接 MySQL 服务器?

asp.net - 移植到 ASP .Net

c# - 如何在 C# 2.0 中从 List<> 获取最后一个对象

VBScript 在不启用兼容模式的情况下将 DOC 转换为 DOCX

MySQL 存储过程 WHILE 只给出最后的结果

mysql - SQL 查询联合具有不同列数的多个表