Sql查询只返回第一行


Sql query returns only first row

我试图显示一个选择查询的结果,但我只得到了重复的第一行,而不是所有的行。这是我的代码:

$query = "SELECT Email from client";
$result = $db->query($query)->fetch();
foreach($result as $email){
    echo $email["Email"]."'n";
}

连接到数据库运行良好。

您需要使用fetchALL(),因为fetch()根据文档只返回一行:

从与PDOStatement对象关联的结果集中获取一行

$query = "SELECT Email from client";
$result = $db->query($query)->fetchALL();
foreach($result as $email){
    echo $email["Email"]."'n";
}

fetch()函数只获取一条记录。

修改你的代码如下:

$query = "SELECT Email from client";
$res = $db->query($query);
while($result = $res->fetch()){
    echo $result["Email"]."'n";
}