我試圖在網頁中一次又一次訪問數據。有沒有更好的辦法 ?有些東西像movetofirst(),movetolast(),movetoprevious(),movetonext()會很好。如何遍歷PDOStatement對象,即獲取第一個,最後一個在前的下一個等等?
現在我正在檢索結果集作爲數組(使用fetchall())和一次又一次地重新使用數組。
有沒有像下面這樣做?我不需要一次又一次地執行查詢。如果結果/數組有多達數百行,則將數據保留在數組中並消耗資源。
$sql = 'SELECT cityname, statename FROM TBLPLACES ORDER BY cityname, statename';
$stmt = $conn->query($sql);
if ($stmt) {
while($row=$stmt->fetch()){
// do some thing
}
// do some more thing
//
// now here, can i access same $stmt object
// to fetch resultset again without executing
// $stmt = $conn->query($sql); again ?
// (no change in query sql, need to fetch the same static data again.)
//
// something like below will be nice.
//
// $stmt->movetofirst();
// while($row=$stmt->fetch()){
// do some thing;
// }
}
什麼也正是阻止您創建這樣的方法呢?你知道你想要什麼,你知道方法必須做什麼,你有數據中的數據,你知道數組的大小..問題在哪裏?首先,下一個,上一個,最後一個 - 這只是取消了你知道大小的數組。 –
難道你不能只將結果存儲在一個數組中,並在下一次需要這些數據時使用它? – mishu
hi n.b,phihag and mishu,of course,with i我可以按照我希望的順序遍歷任意次數。如果查詢導致成千上萬行,那麼我需要一個巨大的數組(即內存空間),這是我想避免的。 –