所以我只是在搜索如何进行“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的单一查询
答案 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注入问题。