簡體   English   中英

php使用下拉列表中的值對SQL Select語句進行排序

[英]php-Ordering an SQL Select statement using value from a drop down list

我試圖根據用戶從下拉列表中選擇的內容來訂購SQL選擇查詢。 這是列表的代碼

<select name="order">
  <option value="Patients_name">Name</option>
  <option value="Patients_age">Age</option>
  <option value="Patients_address">Address</option>
</select>

$ord=$_POST['order'];#taking the value from the list
$query="Select * from Patients ORDER BY '$ord'";
$result= mysql_query($query);

如果我更換

$query="Select * from Patients ORDER BY '$ord'"; 

通過$query="Select * from Patients ORDER BY Patients_age";

患者姓名,患者地址
盡管打印$ ord會給我正確的值,但它完全可以正常工作。 知道為什么它不采用$ ord的值

ORDER BY需要一個列名。 通過將其用引號引起來,您可以將其制成字符串。 刪除$ord周圍的單引號。

順便說一句,您正在做的事情非常危險,並且容易受到SQL注入的影響。 您應該驗證所提交的列實際上是一列並被允許。

不要在''放入$ org。

$query = "Select * from Patients ORDER BY $ord";

暫無
暫無

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

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