簡體   English   中英

在SQL中,如何通過文本框中的任何“用戶輸入”檢索特定記錄的數據。 如何將用戶輸入變量發送到SQL語句

[英]In SQL, how to retrieve data of a certain record by whatever User Inputs in the text box. How to send user input variable to the SQL Statement

我有簡單的HTML代碼,

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

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

我想要的是,無論用戶在文本框中輸入的內容如何,​​都應將其存儲到Data.asp頁的變量中,我認為這將是這樣的:

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

現在在Data.asp上,我還有以下選擇語句:

select * from Data;

在html界面上,當我單擊“提交”按鈕時,無論是否在文本框中輸入任何內容,它都會顯示數據表中存在的所有記錄,這意味着它已成功連接到數據庫,我現在想知道根據用戶在文本框中輸入的內容顯示此數據表中的記錄。 我做了很多研究,但根本找不到。 我嘗試了許多不同的方法,例如Select * from Data WHERE Column1=UserInputData

簡而言之,我只想將用戶輸入值傳遞給選擇查詢,如果特定的列或行包含用戶輸入的值等,則將其發送到數據庫以獲取輸出。

我是VBScripting和SQL的新手。 請幫我。 我花了很長時間寫所有這些信息,以便您也正確理解。

最簡單的方法(不是最好的方法)是這樣的:

<%
  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

以上僅是示例,但應該使您朝正確的方向前進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM