另一个问题。我需要显示一个用户名,所以我正在做的是获取作者ID(即'1'),然后使用查询说从用户表中获取用户名,其中作者ID与用户ID相同
我的问题是我得到的值为'1',如上所述,以下是我的代码。我在这里遗漏了什么或者......?
$users = mysqli_query($sql, "SELECT * FROM users WHERE userid = '$authorid'") or die($users . "<br/>" . mysqli_error($sql));
while($userData = mysqli_fetch_array($users)) {
$postAuthor = $usersData['username'];
}
修改1
我说还提到上面的信息应该显示'Dan'这个名字。
如果作者ID应该是来自帖子行的1(它是),则用户'Dan'的用户ID为1。这是与用户表有关的唯一用途,因此不会在任何地方覆盖它。我很困惑。
答案 0 :(得分:4)
这应该是一个错误:
while($userData = mysqli_fetch_array($users)) {
^^ no s
$postAuthor = $usersData['username'];
^^ used different variable name
}
注意:在这种情况下也使用预准备语句,无论如何你都在使用mysqli。
$select = $sql->prepare("SELECT * FROM users WHERE userid = ?");
$select->bind_param('i', $author_id);
$select->execute();
$results = $select->get_result();
while($userData = $results->fetch_assoc()) {
$postAuthor = $userData['username'];
}