$stmt = $conn->prepare($sql);
$stmt->execute($array);
$rows = $stmt->rowCount();
if($rows >= 1) {
$x = $stmt->fetch();
echo '<div>'.$x['heading'].'</div>';
while($row = $stmt->fetch()) {
echo '<div>'.$row['article'].'</div>';
}
} else {
echo 'Nothing found';
}
如上所述,你能看出为什么当有几个循环时,循环只输出一行?当我两次使用fetch
时会发生这种情况。
另外,我怎样才能避免在那里使用fetch
两次?它被提取一次,我可以再次使用相同的获取数据吗?
答案 0 :(得分:1)
$stmt->fetchAll()
也许这个?
答案 1 :(得分:0)
您可以使用fetchAll()
将结果集中的所有数据作为数组。
您可以通过将数据分配给变量来重用数据:
// Fetch all returned rows
$my_rows = $stmt->fetchAll();
// Make use of these rows multiple times
foreach ($my_rows AS $single_row)
{
echo $single_row['column_name'];
}
// Make use of the retult set a second time
foreach ($my_rows AS $single_row)
{
echo $single_row['column_name'];
}