PDO期望所有结果出现,但只有一个显示

时间:2015-08-05 20:17:50

标签: php mysql pdo

我正在尝试执行一个语句,它会显示我表中每一行的所有结果,但它所做的只是显示最后一行的结果。

<?php
    require_once('php/dbconfig.php');

    $stmt = $DB_con->prepare("SELECT * FROM users");
    $stmt->execute();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {
        $name = array($row['user_name']);
        $email = array($row['user_email']);
    }
    echo $name[0];
?>

这会有效,但它只会显示我表格中最后一个人的名字。如果我尝试用任何其他数字替换0,则不会显示任何内容。

我希望能够在列表中显示所有用户和电子邮件。

1 个答案:

答案 0 :(得分:1)

在以下块中,您将每个名称分配给变量$name

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    $name = array($row['user_name']);
    $email = array($row['user_email']);
}

我认为您打算通过将回显添加到循环中来回显$name循环的每次迭代:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    $name = $row['user_name'];
    $email = $row['user_email'];
    echo "{$name} - {$email}";
}

或通过将分配从$name更改为$name[]来将其添加到名称数组中,这意味着$name数组的下一个索引&#39;。< / p>

Fetch还会返回一条记录,因此您需要循环结果或更改为fetchAll,如其他答案所示。