SELECT * FROM`users`仅返回第一个用户

时间:2017-06-16 11:23:09

标签: php mysql

我有一个PHP脚本:

$sql = $db->query("SELECT * FROM  `users`");
$row = $sql->fetch();
foreach($row as $value){
    echo $value . "<br>";
}

数据库'用户'包含29条记录,但我得到了这个:

enter image description here

3 个答案:

答案 0 :(得分:4)

这是因为您只提取一条记录。

尝试使用以下代码:

$sql = $db->query("SELECT * FROM  `users`");
$row = $sql->fetchAll();
foreach($row as $value){
    print_r($value);
    echo "<br>";
}

通过这种方式,您将获得一系列结果,因此您可以遍历数组而不是属性。

答案 1 :(得分:1)

fetch()返回单个元素。而是尝试使用fetchAll

$row = $sql->fetchAll();
  

fetchAll - 返回包含所有结果集行的数组

它将返回一个数组,因此删除echo $value并使用print_r($value)

  

fetch - 从结果集中仅获取1行

获取下一行

答案 2 :(得分:0)

mysql fetch()函数仅从结果集中获取1行的下一行,而mysql fetchAll()函数返回包含所有结果集行的数组。

因此,使用fetchAll()从结果集中获取所有记录,替换此行

$row = $sql->fetch();

$row = $sql->fetchAll();