2012-08-28 48 views
1

如何使用多次PHP PDO返回對象?如何使用多次PHP PDO返回對象?

根據我的下面的代碼$ result對象不顯示任何數據在while循環。

我的代碼

try { 
    $dbhandle = new PDO("sqlite:".$database); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 

$result=$dbhandle->query("select * from table"); 

if($result) 
{ 
    $row=$result->fetch(PDO::FETCH_ASSOC) 

    if(count($row)>0) 
    { 
     while ($rs1 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) 
     { 
      echo "<pre>"; 
      print_r($rs1); 
      echo "</pre>"; 
     } 
    } 
    else 
    { 
     // error message 
    } 
} 

回答

2

這是因爲光標處於末尾。所以你必須重置光標。

http://us.php.net/manual/en/pdostatement.closecursor.php

通常在MySQL中,你可以使用MySQL的免費的結果。

pdo free result

+1

請給我一些建議或關於closecursor的例子,我沒有得到。 – Hkachhia

+0

關閉遊標似乎沒有將遊標重置到開始位置,允許使用更多的讀取語句。一個fetchAll後跟一個closeCursor,另一個fetch返回一個空行。 –

2

儘管不是嚴格回答你的問題,你爲什麼不看看的$stmt->fetchAll與PDO陳述其負責循環的爲您和您返回完整的關聯數組?爲您節省大量時間!