2014-07-23 27 views
0

我的asp(和js)代码工作良好,但我不知道将记录插入数据库的确切命令。我能够从数据库中“读取”,“更新”和“删除”,但不能插入! (db服务器的值是例子)Mysql + ASP如何添加记录

var Cn = new ActiveXObject("ADODB.Connection"); 

Cn.Open("server=1.1.1.1;db=dbserver; DRIVER={MySQL ODBC 3.51 Driver};uid=login;pwd=password"); 

var value1 = new String(Request.Form("value1")); 
var value1 = new String(Request.Form("value1")); 
var value1 = new String(Request.Form("value1")); 

    Cn.Execte("INSERT INTO table (col1,col2,col3) VALUES (value1,value2,value3)"); 

    Cn.Close(); 
    Response.Redirect("home.asp"); 

有人可以帮我吗?

谢谢!

+0

VB不插入变量,SQL值通常需要引号,但是如果你修复了这个问题,你很容易被SQL注入。去看看http://bobby-tables.com/asp.html – Quentin

回答

0

您将有串联的值到SQL字符串,如:

Cn.Execute("INSERT INTO table (col1,col2,col3) VALUES ('" + value1 + "','" + value2 + "','" + value3 + "')"); 

'使用假设在数据库中的列字符串,否则你不需要它。

+0

不,整个程序似乎不起作用: [MySQL] [ODBC 3.51驱动程序] [mysqld-5.5.37-35.1-log] PROCEDURE mysqlserver.Execte不存在 – Pelandro

+0

你有错字:它是'Execute',而不是'Execte' – SearchAndResQ

+0

谢谢,我是个白痴! :-) – Pelandro

0

如果值PARAMATERS是字符串 - nvarchar的,文本等

时,必须将它们变成引号。你的陈述看起来像这样。

Cn.Execute("INSERT INTO table (col1,col2,col3) VALUES (value1,'" + value2 + "','" + value3 + "')"); 

我以为COL2和COL3是string类型和COL1是没有的。

+0

不,整个程序似乎不起作用: [MySQL] [ODBC 3.51驱动程序] [mysqld-5.5.37-35.1-log] PROCEDURE mysqlserver.Execte不存在 – Pelandro

+0

正如你已经看到的,有一个错字在你的通话中。 –