我有一个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>
数据库表结构:
1条答案
按热度按时间gmxoilav1#
在组合sql查询时,需要用
;
.另请参阅如何使用mysqli\u multi\u查询而不是
mysqli_query
.参见官方文档中的示例#1。您还应该考虑重构代码以防止sql注入。