使用ADO插入经典ASP
问题描述:
' Setting variables
Dim con, sql_insert, data_source
data_source = "project_db"
sql_insert = "insert into cart (UserID,Count,ProductName,ProductDescription,ProductPrice) values ('"&user_id&"','"&count&"','"&product_name&"','"&product_description&"','"&product_price&"')"
' Creating the Connection Object and opening the database
Set con = Server.CreateObject("ADODB.Connection")
con.Open data_source
' Executing the sql insertion code
con.Execute sql_insert
' Done. Now Close the connection
con.Close
Set con = Nothing
正如您所见,它是一个简单的代码。它在我的本地主机上工作了5或6次。但现在它不起作用。有什么问题 ?我想,这是关于我的数据库或内存。我在2个不同的电脑设置2个不同的IIS和他们的行为一样......请帮助..使用ADO插入经典ASP
感谢
答
它是否给你的错误信息?确保您插入的所有值实际上都有值,并且不为空或为空。你可以通过response.write检查所有的值,然后response.end来查看它们是否包含任何值。
答
我敢打赌这是一个数据相关的错误。您应该使用ADO参数。这些将确保输入中无关的SQL不友好字符不会对数据库操作产生不利影响。您还应该使用它们来防范SQL注入问题。
有些文档可在http://msdn.microsoft.com/en-us/library/ms675869(VS.85).aspx处获得,您可以在谷歌搜索“ADO参数”并找到许多相关示例。
答
我相信'data_source'应该关注(并且与Tom Gullen就错误消息达成一致,请始终在页面顶部使用Option Explicit)。
con.Open要么在'data_source'中传递一些DSN参数或数据库连接字符串。
例子,分别为:
data_source = DSN_Database, DSN_User, DSN_Password
(在你的DSN配置这些 'DSN_' 参数被发现/套)
OR:
data_source = "Driver={SQL Server};Server=server.domain.com;Database=project_db;uid=MyUser;pwd=MyPass;""
给出有关错误的一些更详细的信息你得到 – Smur 2010-06-02 12:26:06
Microsoft OLE DB提供程序的ODBC驱动程序错误“80040e07”,我收到。 – 2010-06-02 12:46:54
插入SQL中的嵌套引号有什么用?你为什么不使用ADO参数? – 2010-06-02 16:21:27