如何将html输入到php-sql中


How to get html input into php sql

我试图获得一个人从html页面的输入中搜索员工ID的值,它将显示该员工ID 中所有已处理的采购

$name = $_GET["staffID"];
$sql = "SELECT orderID, orderDate, shippingDate, staffName FROM purchase
WHERE staffID = ".$name." 
INNER JOIN staff ON purchase.staffID =
staff.staffID ORDER BY orderDate";
$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error());

当我放入WHERE语句时,我得到的错误是显而易见的,所以我不知道我是否正确地执行了WHERE语句。

如果没有where语句,它将向我显示表中所有员工ID的所有购买情况,这是正确的

<html> 
</head>
<body>
<form id="staff" action="file.php" method="get">
<p>please fill in the following form</p>
<p>Staff ID:  <input type="text" name="staffID"/>
</p>
<p><input type="submit"  value="Submit">
<input type="reset" value="Reset"></p>
</form>
</body>
</html>

试试这个;)

$name = isset($_GET['staffID'])?$_GET['staffID']:'';
if(!empty($name) && $stmt = $conn->prepare('SELECT orderID, orderDate, shippingDate, staffName FROM purchase INNER JOIN staff ON purchase.staffID = staff.staffID WHERE staffID = ? ORDER BY orderDate')){
  /**
   * Here 1st parameter is data type of field s for string and i for integer;
   * @todo update "s" as per data type of staffID field;
   */
  $stmt->bind_param("s", $name);
  /* execute query */
  $stmt->execute();
  /* Get result: */
  $result = $stmt->get_result();
  /* now you can fetch the results into an array - NICE */
  while($row = $result->fetch_assoc()){
    /**
     * @todo use $row as per your requirement;
     */
  }
  /* close statement */
  $stmt->close();
}
/* optional close connection */
$conn->close();

也防止SQL注入并检查$_GET['staffID']的空白值;

问题是您没有在名称变量周围放置分隔符:

$sql = "SELECT orderID, orderDate, shippingDate, staffName FROM purchase
INNER JOIN staff ON purchase.staffID =
staff.staffID ORDER BY orderDate
WHERE staffID = '".$name."' ";