我需要一些帮助吗?我可以使用以下方法成功执行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";
我在网上看到的所有东西,语法都过于混乱,我无法剖析它并使某些东西发挥作用。谢谢。
答案 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)