0

我有简单的 HTML 代码

form method="post" action='Data.asp

input type="text" name="UserInputData" size=20

我想要的是文本框中的任何用户输入都应该存储到 Data.asp 页面中的一个变量中,我假设它是这样的:

<%
  ScriptUserInputData=request("UserInputData")
%>

现在在 Data.asp 上,我也有如下的 select 语句:

select * from Data;

在html界面上,当我点击提交按钮时,无论是否在文本框中输入任何内容,它都会显示数据表中存在的所有记录,这意味着它正在成功连接到数据库,我现在想知道如何根据用户在文本框中输入的内容显示此数据表中的记录。我做了很多研究,但我根本找不到。我尝试了很多不同的方法,例如Select * from Data WHERE Column1=UserInputData.

简而言之,我只想将用户输入值传递给选择查询,然后将其发送到数据库以获取输出,如果特定列或行包含用户输入的值等。

我是 VBScripting 和 SQL 的新手。请帮帮我。我花了很长时间才写下所有这些信息,以便您也能正确理解。

4

1 回答 1

1

最简单的方法(不是最好的方法)是这样做的:

<%
  ScriptUserInputData=request("UserInputData")
  sql = "select * from Data" 
  if ScriptUserInputData <> "" then
     sql = sql + " WHERE Column1 = '" + Replace(ScriptUserInputData,"'","''") + "'"
  end if
%>

现在上面的内容很容易受到 SQL 注入的影响,您应该真正使用参数化查询。像这样的东西:

Set cmd = server.createobject("ADODB.Command")

cmd.ActiveConnection = yourconnection 
cmd.CommandText = "select * from Data WHERE Column1 = ?"
cmd.CommandType = adCmdText
cmd.CommandTimeout = 900 

set prm = cmd1.CreateParameter("@prm", 200, 1, 200, ScriptUserInputData )
cmd.Parameters.Append prm

以上只是一个例子,但应该让你朝着正确的方向前进。

于 2013-02-20T21:24:08.810 回答