有人可以做出这样一个查询?(Can someone make this a single query

2019-10-19 08:29发布

所以我只是在寻找如何做一个“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的

Answer 1:

你把一个快速黑客的路线作为您的意见做rhis指出:

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

让我指出,为防止一些问题依然存在(SQL注入是其中之一),你可以利用使用paramterized查询。
我假设你的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对象参数的详细背景。



Answer 2:

你可以这样做:

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

有用! 但要小心,这种方式有SQL注入的问题。



文章来源: Can someone make this a single query?