2011-03-04 74 views
0

我真的不明白,因爲PDOStatement對象的點:PHP PDOStatement對象使用fetchall第二次

$PDO = new PDO(); 
$PDOS = $PDO->query($sql); 

var_dump($PDOS->fetchAll()); //will return data 
var_dump($PDOS->fetchAll()); //empty 

是否有需要傳遞,使第二次使用fetchall返回數據設置了一個param,但沒有再次執行SQL?

回答

0

只需將第一次調用fetchAll()的結果存儲到PHP變量中即可。任何你不能這樣做的理由?

$results = $PDOS->fetchAll(); 

然後,您可以使用$results儘可能多地在不對數據庫徵稅的情況下進一步徵稅。

+0

是的,我知道,我在考慮fetchAll後$ PDOS不會鬆動狀態,並且結果將始終可用於方法請求。 – 2011-03-04 15:22:37

+0

我認爲它失去狀態的原因是因爲fetchAll()實際上是從mysql請求結果行,而不是讓你訪問它已經獲取和存儲的結果。它可能會使用查詢緩衝與MySQL:http://www.php.net/pdo-mysql#pdo-mysql.constants – 2011-03-05 23:26:16

相關問題