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

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

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

$var1 = "where CODE like '%{$_POST['AGI1']}%'";
$var2 = "where CODE like '%{$_POST['AGI2']}%'";
$var3 = "where CODE like '%{$_POST['AGI3']}%'";
$var4 = "where CODE like '%{$_POST['AGI4']}%'";

$sql = "select * from table $var1" ;
$sql .= "select * from table $var2" ;
$sql .= "select * from table $var3" ;
$sql .= "select * from table $var4" ;

$result = mysqli_query($conn,$sql1, $sql2, $sql3, $sql4);

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

$var1 = "where CODE like '%{$_POST['AGI1']}%' OR CODE like '%{$_POST['AGI2']}%' OR CODE like '%{$_POST['AGI3']}%' OR CODE like '%{$_POST['AGI4']}%' "; 

$sql = "select * from proteinpd $var1;";
$result = mysqli_query($conn,$sql);
.
.
.

while($row = mysqli_fetch_array($result)){

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

<form action="output.php" method="POST" >
<table>
        <div>  
            <h2 > AGI </h2> 
           <p><input name="AGI1"type="text"></p>
           <p><input name="AGI2" type="text"></p>
           <p><input name="AGI3" type="text"></p>
           <p><input name="AGI4" type="text"></p>
           <p> <input type="Submit" value="OK"></p>

        </div>  
    </form>

数据库表结构:

gmxoilav

gmxoilav1#

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

$sql = "select * from table $var1;" ;
$sql .= "select * from table $var2;" ;
$sql .= "select * from table $var3;" ;
$sql .= "select * from table $var4;" ;

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

相关问题