当有几个时,PDO和MySql循环只输出一行

时间:2013-10-14 16:21:02

标签: php pdo

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

2 个答案:

答案 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'];
}