MyPHP网络摄像头使用2个不同的值分隔&符号

时间:2018-03-11 01:06:22

标签: php phpmyadmin get

我需要一些帮助吗?我可以使用以下方法成功执行MySQL查询:

IP_ADDRESS / fund_list.php?ID_NUMBER = 555666

以下是:

$ID = $_GET['Id_Number'];
$sql = "SELECT * FROM fund_list WHERE Number = ".$ID;

现在我想在网络电话中使用两种不同的东西。像:

IP_ADDRESS / fund_list.php ID_NUMBER = 555666&安培;名称=比利

但我不知道如何写下面的'get'一行。

$ID = $_GET['Id_Number'] & $Name = $_GET['Name'];   <-- Does not work

我认为SQL select语句将是:

$sql = "SELECT * FROM fund_list WHERE TheNumber = .$ID AND TheName = .$Name";

我在网上看到的所有东西,语法都过于混乱,我无法剖析它并使某些东西发挥作用。谢谢。

2 个答案:

答案 0 :(得分:1)

首先,您应该准备好您的语句,将数据直接从查询字符串传递到SQL查询是非常危险的。如果你坚持不准备它们,你也应该避免在SELECT中使用*。

在这种情况下你的问题是你需要''围绕TheName =

$sql = "SELECT * FROM fund_list WHERE TheNumber = {$ID} AND TheName = '{$Name}'";

无论如何,你应该做的是:

$sql = "SELECT Param1, Param2 FROM fund_list WHERE TheNumber = ? AND TheName = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("is", $ID, $Name);
$stmt->execute();
$stmt->bind_result($param1, $param2);
while($stmt->fetch()) {
  //Your code
}

该代码可防止SQL注入攻击,以及您可以创建的许多其他潜在问题,而不是使用PDO或mysqli预处理语句。

按请求编辑:

$ID = $_GET['Id_Number']; 
$Name = $_GET['Name'];
$sql = "SELECT * FROM fund_list WHERE TheNumber = {$ID} AND TheName = '{$Name}'";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
  //your code
}

在比较SQL中的字符串参数时需要''。

答案 1 :(得分:-3)

你尝试过这样做吗?这总是对我有用 $ ID = $ _GET ['Id_Number']; $ Name = $ _GET ['Name'];