1
$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在那里使用两次?它已提取一次,我可以再次使用相同的提取数据吗?

4

2 回答 2

1
$stmt->fetchAll()

也许这个?

于 2013-10-14T16:23:25.840 回答
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'];
}
于 2013-10-14T16:28:00.907 回答