gpt4 book ai didi

php - 使用 MySQL 和 PHP 从数据库输出多行

转载 作者:行者123 更新时间:2023-11-29 06:17:05 26 4
gpt4 key购买 nike

我编写了一些简单的 php 代码,旨在根据 session ID 从数据库中检索数据。如果 session ID 为 1,则我查询数据库以查找 UserID 为 1 的所有条目,然后输出它们。

这在一定程度上有效,我可以让查询输出正确的条目,但由于某种原因它永远不会输出最新的条目,而是跳过它并输出其余的条目。

我的代码如下,有人能发现我做错了什么吗?

谢谢

$id = $_GET['id'];
if ($id)
{
$sql = "SELECT * FROM `forum_topics` WHERE `uid`='" . $id . "'";
$res = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($res) == 0)
{
echo "You haven't got any adverts to display";
}
else
{
$row = mysql_fetch_assoc($res);

echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\" width=\"100%\">\n";

echo "<tr align=\"center\"><td class=\"forum_header\">Title</td><td class=\"forum_header\">User</td><td class=\"forum_header\">Date Created</td></tr>";

while ($row2 = mysql_fetch_assoc($res))
{
echo "<tr align=\"center\"><td><a href=\"index.php?act=topic&id=" . $row2['id'] . "\">" . s($row2['title']) . "</a></td><td>" . uid($row2['uid']) . "</td><td>" . $row2['date'] . "</td></tr>";
}
echo "</table>\n";



}
}

最佳答案

要事第一

$id = $_GET['id'];
if ($id)

上面的代码有一个SQL注入(inject)错误!将其以及所有类似的代码更改为

$id = mysql_real_escape_string($_GET['id']);
if ($id)

有关 SQL 注入(inject)的信息,请参阅:How does the SQL injection from the "Bobby Tables" XKCD comic work?

其次是你的问题

认为您的问题 可能是交易。

您的用户的最新条目尚未提交。
这意味着虽然它尚未提交,但只有发布它的用户才能看到它(因为该条目位于他的事务中)。

其他 session 中的人(包括您)在该用户的交易关闭之前不会看到该条目。

关于php - 使用 MySQL 和 PHP 从数据库输出多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com