PDO:同一语句上的Fetch和FetchAll

时间:2015-03-18 19:45:43

标签: php mysql database pdo

您好我有以下代码从我拥有的表中选择一些结果。我还没有包含SQL / Table结构,因为我知道SQL语句按预期运行。

我的问题是什么时候想要"回收"准备好的陈述,即我只想fetch第一个结果,然后fetchAll结果。当我fetchAll时,结果集只包含一个结果(最后一个结果),但应该有两个结果。

    $stmt = $conn->prepare(*SQL STATEMENT*);
    $stmt->execute();
    $stmt->setFetchMode(PDO::FETCH_CLASS| PDO::FETCH_PROPS_LATE,'MyClass');
    $oneResult = $stmt->fetch();
    echo $oneResult->get_Name();

    $allResults = $stmt->fetchAll;
    foreach($allResults as $row){
        echo $row->getField_Name();
   }

是否可以连续使用fetchAllfetch而无需准备新的声明?

1 个答案:

答案 0 :(得分:0)

只需使用fetchall,然后使用生成的数组获取第一个然后迭代:

$stmt = $conn->prepare(*SQL STATEMENT*);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_CLASS| PDO::FETCH_PROPS_LATE,'MyClass');
$allResults = $stmt->fetchAll;
$oneResult = each($allResults);
echo $oneResult->get_Name();
foreach($allResults as $row){
    echo $row->getField_Name();
}