php-使用下拉列表中的值对SQL Select语句进行排序

时间:2014-01-01 16:43:01

标签: php mysql web

我正在尝试根据用户从下拉列表中选择的内容来订购SQL select查询。这是列表的代码

<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";

Patients_name,Patients_address
虽然打印$ ord会给我正确的值,但它完美有效。 知道为什么它没有采用$ ord的价值

2 个答案:

答案 0 :(得分:1)

ORDER BY需要一个列名。把它放在引号中,你就是把它变成一个字符串。删除$ord周围的单引号。

顺便说一句,你所做的是非常危险并且对SQL注入持开放态度。您应该验证提交的列实际上是一列并允许。

答案 1 :(得分:0)

不要将$ org放在''内。

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