我知道这可能是一个非常基本的问题,但我对php和数据库还不太熟悉,我正试图找出一个while条件,这个条件将保持while循环运行,直到所有(也很高兴知道如何在固定数量的情况下)的数据都从数据库中获得为止。

$stmt = $db->prepare("SELECT * FROM icecreams");
$stmt -> execute();
$row = $stmt -> fetchAll(PDO::FETCH_ASSOC);

所以现在我需要弄清楚我需要什么条件,逻辑是
while (there is data to fetch) {

  echo "<h1>$row['flavour']</h1>";
  echo "...";

}

最佳答案

fetchAll()返回包含所有结果集行的数组,而fetch()返回结果集中的一行。
fetchAll()用法:

$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($array as $row) {
    # code...
}

fetch()用法:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
   # code...
}

如果你打算用它来打印html,第二个选项看起来更好。对于小的记录集,性能差异并不重要,但是如果您使用的是很多记录,那么fetchAll()可能会慢一点,因为它会尝试一次将整个数据映射到单个数组中。

关于php - 在SELECT查询后,while循环显示所有数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22252821/

10-16 13:31
查看更多