有人可以将此作为一个查询吗?

时间:2014-02-12 15:14:38

标签: asp-classic ado

所以我只是在搜索如何进行“INSERT INTO”查询并发现:

    sql="INSERT INTO Customers (ID,firstName,"
    sql=sql & "lastName)"
    sql=sql & " VALUES "
    sql=sql & "('" & Request.Form("id") & "',"
    sql=sql & "'" & Request.Form("firstname") & "',"
    sql=sql & "'" & Request.Form("lastname") & "')"

我知道它有效,但我想让它成为一个没有所有sql = sql的单一查询

2 个答案:

答案 0 :(得分:2)

你按照你的评论中的说法采取了快速破解的路线:

sql="INSERT INTO Customers (ID,firstName,lastName) VALUES ('" & Request.Form("id") & "','" & Request.Form("fistname") & "','" & Request.Form("lastname") & "')" 

让我坚持声明,为了防止出现多个问题(sql注入就是其中之一),您可以利用参数化查询。
我假设你的sql语句之后某处有一个ADO命令。如果使用命令参数将参数从网站发送到查询,则会更安全。

command.CommandText = "INSERT INTO Customers (ID,firstName,lastName) VALUES (?,?,?)"

Set param = command.CreateParameter ("id", adInteger, adParamInput)
param.value = Request.Form("id") 
command.Parameters.Append param 

Set param2 = command.CreateParameter ("firstname", adVarWChar, adParamInput, 50)
param2.value = Request.Form("firstname") 
command.Parameters.Append param2 

Set param3 = command.CreateParameter ("lastname", adVarWChar, adParamInput, 50)
param3.value = Request.Form("lastname") 
command.Parameters.Append param3 

command.Execute

请查看Command Object Parameters了解更多背景信息。

答案 1 :(得分:-5)

你可以这样做:

string sql = string.Format("INSERT INTO Customers(Id,FirstName,LastName) VALUES({0},'{1}','{2}')", param0, param1, param2);

有效!但是请注意这种方式有SQL注入问题。

相关问题