我有一个包含列的表
GroupID | GroupName | GroupDesc | Overs |
-----------------------------------------
1 | Test Group|Description| Yes |
我有一个名为 list.php 的页面,它当前为组表(上图)中数据库中的每一行创建 URL。
该代码不是最漂亮的,但我认为它有效,这是他的代码
list.php
<?php
$result = mysql_query("SELECT * FROM groups");
while($row = mysql_fetch_array($result))
{
echo "<div class=\"divider\">";
echo "<a href=\"group.php?id=";
echo $row['GroupID'];
echo "\">";
echo $row['GroupName'];
echo "</a>";
echo "<br><br>";
echo $row['GroupDesc'];
echo "<br>";
echo "Over 18's: ";
echo $row['AgeRes'];
echo "</div>";
}
?>
然后创建一个像这样的 URLhttp://domainname.com/group/group.php?id=1
这就是我的问题所在 - 如何使用 URL 中的 ID 部分从上面的数据库中选择相关行?
我的第二个问题是我们如何阻止 SQL 注入?
我对这一切都很陌生,所以我希望得到有关此问题的答案以及任何好的阅读资源,以便我可以进一步发展我的技能。
Thanks
要回答第一个问题,您需要在查询中使用 where 子句。我不确定我使用的列名称是否正确,但我相信您已经明白了。有大量免费的在线交互式 SQL 教程,您可以使用它们来了解如何编写查询代码。
要回答你的第二个问题,你可以使用mysql_real_escape_string()
函数来整理正在传递的变量。然而,更好的方法是改变连接数据库的方式。这PDO and mysqli两者在连接数据库方面都做得更好。你应该考虑学习这些——特别是如果你刚刚开始。
<?php
$id=mysql_real_escape_string($_GET['id']);
$result = mysql_query("SELECT * FROM groups where id=".$id.";");
// Am not 100% sure if that is the right column name to use for your database.
while($row = mysql_fetch_array($result))
{
echo "<div class=\"divider\">";
echo "<a href=\"group.php?id=";
echo $row['GroupID'];
echo "\">";
echo $row['GroupName'];
echo "</a>";
echo "<br><br>";
echo $row['GroupDesc'];
echo "<br>";
echo "Over 18's: ";
echo $row['AgeRes'];
echo "</div>";
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)