尝试从mysql表查询多个值到php时出现问题

uubf1zoe  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(434)

我有一个html页面,它将用户的多个输入作为数字代码,然后在另一个php页面中显示输出。从数据库表中检索数据。
我的代码坏了,你能帮我找出原因吗?
php代码:

  1. $var1 = "where CODE like '%{$_POST['AGI1']}%'";
  2. $var2 = "where CODE like '%{$_POST['AGI2']}%'";
  3. $var3 = "where CODE like '%{$_POST['AGI3']}%'";
  4. $var4 = "where CODE like '%{$_POST['AGI4']}%'";
  5. $sql = "select * from table $var1" ;
  6. $sql .= "select * from table $var2" ;
  7. $sql .= "select * from table $var3" ;
  8. $sql .= "select * from table $var4" ;
  9. $result = mysqli_query($conn,$sql1, $sql2, $sql3, $sql4);

提前谢谢,谢谢你的帮助。我仍然是新的使用php,所以我很抱歉,如果这是一个愚蠢的问题。
编辑:
代码如下:

  1. $var1 = "where CODE like '%{$_POST['AGI1']}%' OR CODE like '%{$_POST['AGI2']}%' OR CODE like '%{$_POST['AGI3']}%' OR CODE like '%{$_POST['AGI4']}%' ";
  2. $sql = "select * from proteinpd $var1;";
  3. $result = mysqli_query($conn,$sql);
  4. .
  5. .
  6. .
  7. while($row = mysqli_fetch_array($result)){

它向我展示了所有表格的结果,而不仅仅是我选择的代码。为什么会这样?
输入形式:

  1. <form action="output.php" method="POST" >
  2. <table>
  3. <div>
  4. <h2 > AGI </h2>
  5. <p><input name="AGI1"type="text"></p>
  6. <p><input name="AGI2" type="text"></p>
  7. <p><input name="AGI3" type="text"></p>
  8. <p><input name="AGI4" type="text"></p>
  9. <p> <input type="Submit" value="OK"></p>
  10. </div>
  11. </form>

数据库表结构:

gmxoilav

gmxoilav1#

在组合sql查询时,需要用 ; .

  1. $sql = "select * from table $var1;" ;
  2. $sql .= "select * from table $var2;" ;
  3. $sql .= "select * from table $var3;" ;
  4. $sql .= "select * from table $var4;" ;

另请参阅如何使用mysqli\u multi\u查询而不是 mysqli_query .
参见官方文档中的示例#1。您还应该考虑重构代码以防止sql注入。

相关问题