我知道这可能是一个非常基本的问题,但我对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/