我试图检索动态查询PHP页面。第一页通过post方法传递city或id下一页的值。
我知道这里sql注入可以完成。 但我在私人网络上使用它,并跟踪每个用户会话。 并且table1受到保护。
表格如下:
TABLE1
-----------------------------------------------------
1 select * from tablename1 where ID = $id
2 select * from tablename1 where city = $city
2 select * from tablename1 where ID = $id and city = $city
-----------------------------------------------------
现在我运行包含代码的页面:
$id = $_POST["id"];
$city= $_POST["city"];
$tabledata = mysql_query("SELECT * FROM table1 ");
$a=mysql_fetch_row($tabledata );
$query_table=$a['1']; // retrieve sql query from table1 which stored in 2nd column
echo " $query_table"; // display query
$result = mysql_query($query_table);
while ($field = mysql_fetch_row( $result) )
{
echo "<td> $field[1] </td>";
}
现在,问题在于我无法获得结果。 $result
是空的吗?
如何通过$city
或$id
值来查询?
但是,如果我从 TABKE1 中删除WHERE
条件,那么效果会很好。那么,如何让WHERE
条件传递参数呢?
我该怎么办?此处的任何其他选项可以在1个表上调用存储的查询,并在其他页面和其他表上进行处理
答案 0 :(得分:0)
如果您想要带有ID或城市的结果
mysql_query("SELECT * FROM table1 WHERE ID = '$id' OR city = '$city'");
如果你想同时使用强制
mysql_query("SELECT * FROM table1 WHERE ID = '$id' AND city = '$city'");
答案 1 :(得分:0)
table1中的查询应该是这样的
-----------------------------------------------------
1 select * from tablename1 where ID = '".$id."'
2 select * from tablename1 where city = '".$city."'
3 select * from tablename1 where ID = '".$id."' and city = '".$city."'
-----------------------------------------------------
继续进行编码,它会显示结果。
选项2:
表1:
-----------------------------------------------------
1 select * from tablename1 where ID =
2 select * from tablename1 where city =
-----------------------------------------------------
并改变像这样的PHP代码
$query_table=$a['1']." '".$id."'" ;
或
$query_table=$a['2']." '".$city."'" ;
选项3:
表1:
-----------------------------------------------------
1 select * from tablename1
-----------------------------------------------------
并改变像这样的PHP代码
$query_table=$a['1']." where ID = '".$id."'" ;
或
$query_table=$a['1']." where ID = '".$id."' AND city = '".$city."' " ;