经典ASP向MySQL添加记录

时间:2016-10-11 23:28:05

标签: mysql database vbscript asp-classic

我不得不将旧的经典ASP项目转移到新主机上,我在连接MySQL服务器时遇到问题。

我已经在我使用的旧主机脚本下方附加了现在错误

  

找不到数据源名称且未指定默认驱动程序

经过一些挖掘后,似乎我必须将驱动程序更改为{MySQL ODBC 5.3 Unicode Driver},但仍然存在错误。它似乎指向光标/锁定类型,但我使用了所有选项但没有成功。

  

ODBC驱动程序不支持请求的属性。

<%
Dim Conn
Dim Rs
Dim sql

Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")

Conn.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=xxx; PORT=xxx; DATABASE=xxx; UID=xxx; PASSWORD=xxx; OPTION=3"

sql= "SELECT * FROM table;" 

Rs.CursorType = 2 
Rs.LockType = 3 

Rs.Open sql, Conn    

Rs.AddNew 

Rs.Fields("database") = Request.Form("form")

Rs.Update   
Rs.Close
Set Rs = Nothing
Set Conn = Nothing
%>

1 个答案:

答案 0 :(得分:1)

您无需插入记录。相反,使用所有数据库驱动程序都应支持的纯SQL:

Dim oCommand
Const adInteger = 3
Const adDate = 7
Const adVarChar = 200
sql = "Insert Into table (database) Values (?)" 
Set oCommand = Server.Createobject("ADODB.Command")
Set oCommand.ActiveConnection = Conn
oCommand.CommandText = sql
oCommand.Parameters.Append(oCommand.CreateParameter("database", adVarChar, , 512, Request.Form("form")) )
oCommand.Execute

这确实要写得多,但应该保留其他方式的所有好处(例如SQL注入攻击保护),而不依赖于特定的驱动程序。