【问题标题】:How do properly make a link to another user in PHP如何在 PHP 中正确链接到另一个用户
【发布时间】:2026-02-15 10:45:01
【问题描述】:

我有一个问题,我想要一些输入。我制作了一个列表,列出了我正在从事的一个小项目中的所有用户。在该列表中,我有一个指向每个现有用户的链接,以便用户可以互相访问。

链接如下所示。

    <td>
        <a href="otheruser.php?id=' .$row['id'].'">
        <i class="glyphicon glyphicon-user" aria-hidden="true">Presentation</i>
        </a>
    </td>

这个链接有点用。另一方面,问题开始了。 当我到达我想访问的用户个人资料页面时,我使用此代码从数据库中查找该用户信息。

<?php
$userId = $_GET['id'];
$sql = "SELECT * FROM students WHERE id = " . intval($userId);

$stmt = $dbh->prepare($sql);

$stmt->execute();
?>

这也有效,但我知道这不是好的形式。 因此我尝试了

//$sql = "SELECT * FROM students WHERE id = id";

然后显示所有用户及其所有演示文稿和图像 在彼此之上,在同一页面上。再说一次,我如何向其他用户展示 正确呈现。 如果有帮助的话,我也使用 PDO 而不是 MySQLI。

【问题讨论】:

  • 阅读手册中的Prepared Statements。但是,在这种特殊情况下,您的代码是安全的,因为您将值转换为整数。但是,是的,最好习惯使用 Prepared Statements 并始终如一地使用它。
  • 你在另一个页面中获取 id 检查它
  • @Bhargav 如果我不问我就不会学习。你能像我 11 岁那样向我解释吗? :P
  • @MagnusEriksson 谢谢,我会阅读更多关于准备好的陈述的内容。
  • 你用href传递id,它会像那个男孩一样进入php页面$userId = $_GET['id'];

标签: php profile


【解决方案1】:

你很亲密

$sql = "SELECT * FROM students WHERE id = id";

要将准备好的查询与 PDO 一起使用,您可以通过以下两种方式之一进行更改:位置或命名占位符。

位置:

$sql = "SELECT * FROM students WHERE id = ?";

姓名:

$sql = "SELECT * FROM students WHERE id = :id";

运行“准备”,然后在执行语句中添加值:

$stmt->execute([$userId]); // for positional
$stmt->execute(['id' => $userId]); // for named

(The only proper) PDO tutorial 对我熟悉 PDO 很有帮助。

【讨论】:

    最近更新 更多