【问题标题】:How to get all rows from mysqli result? [closed]如何从mysqli结果中获取所有行? [关闭]
【发布时间】:2018-09-03 06:37:30
【问题描述】:
<?php

$db = mysqli_connect('localhost', 'root', '', 'registration');
$query = "select * from users order by ID";
$result = mysqli_query($db, $query);
// Associative array
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["email"], $row["password"]);
mysqli_close($db);

我的问题是这段代码总是只打印一个用户的详细信息,但实际上数据库中有三个用户。我想显示所有记录。如何从 MySQLi 中获取所有结果?

【问题讨论】:

  • 是时候了解循环了
  • 您需要遍历结果才能打印多于 1 条记录。

标签: php mysql mysqli


【解决方案1】:

您错过了while(),这就是您获得单一结果的原因。您可以了解有关循环的更多信息here

while ($row = mysqli_fetch_assoc($result)) {
    echo $row["email"] . $row["password"];
}

为了使您的代码更加高效和安全,您应该使用PDOprepared staments

【讨论】:

  • $query = "select * from users where username='$_SESSION['username']";如果我想显示当前会话的详细信息,这是正确的吗
  • 对不起,我没得到它
  • 最好将$_SESSION['username'] 存储到变量中,然后将该变量放入查询中
  • $username = $_SESSION['username'];
  • 这个 $query = "select * from users where username=".$name; 怎么样?在上面我添加了 $name= $_SESSION['username'];
【解决方案2】:

使用此代码:

<?php

$db = mysqli_connect('localhost', 'root', '', 'registration');
$query = "select * from users order by ID";
$result = mysqli_query($db, $query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "<pre>";
printf ("Email: %s  password: %s", $row["email"], $row["password"]);
}

mysqli_close($db);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-09
    • 2014-03-02
    • 2010-12-02
    相关资源
    最近更新 更多