PHP / MSSQL - 过滤来自用户输入(HTML)(PHP/MSSQL - Filterin

2019-08-16 15:16发布

我一直在考虑这个任务,包括某种通过用户输入过滤以我目前的SQL查询。 基本上,我正在寻找一个过滤选项,无论是其某种菜单或按钮的,真的没关系。 我MSSQL如下:

SELECT TOP 10 Test_Database.Distributor, Test_Database.Value
    FROM Test_Database
    WHERE Test_Database.Week = '(USER INPUT GOES HERE)'
    GROUP BY Distributor 
    ORDER BY Value desc

我怎样才能让WHERE语句的用户输入? 例如..一个客户希望看到一些经销商的给定值,但在客户选择的周/月/年。

问候

Answer 1:

 You can do that simply by introducing if else statement
 $where  = "";
 //receive filter option  example $_GET['week']  
  //Do some sanitizing for $_GET['week']
  if ($_GET['week']) {
  $where  =  "WHERE Test_Database.Week = $_GET['week']"
 } else if (somecondition) {
  $where  = "some query";
  }

//您可以通过连接$其中添加多个条件,但要确保哪里都不重复

$query = "SELECT TOP 10 Test_Database.Distributor, Test_Database.Value
FROM Test_Database
$where  
GROUP BY Distributor
ORDER BY Value desc "


Answer 2:

林不知道,但也许你可以试试。

<input type="text" name="week"/>

邮政选择此页文本框的值,并设置在接近该值。



Answer 3:

不应该有来自用户在SQL查询中的任何数据

未通过过滤器

SQL注入是不是一句空话

所以没有$ _GET [“周”]在SQL中,如果你没有明确它



文章来源: PHP/MSSQL - Filtering from User Input (HTML)