2014-02-20 24 views
0

我正在嘗試將指針重置爲CodeIgniter中的第一條記錄。考慮下面大大簡化代碼:如何在CodeIgniter中執行mysql_data_seek?

$query_milestones = "SELECT * FROM milestones"; 
$milestones  = $this->db->query($query_milestones); 

foreach($milestones->result() as $milestoneRow){ 
    // do something 
} 
$milestones->data_seek(0); // <--- This gives me Fatal error. 
foreach($milestones->result() as $milestoneRow){ 
    // do something else 
} 

這給了我: 致命錯誤:調用未定義的方法CI_DB_mysql_result :: data_seek()

我怎樣才能做一個笨mysql_data_seek?

更新:這似乎很奇怪,但重置指針顯然是沒有必要的。下面我想要做什麼,但不是我所期望:

$query_milestones = "SELECT * FROM milestones"; 
$milestones  = $this->db->query($query_milestones); 

foreach($milestones->result() as $milestoneRow){ 
    // do something 
} 
// As soon as the foreach is reached, the first record is retrieved again. 
foreach($milestones->result() as $milestoneRow){ 
    // do something else 
} 

回答

0

嘗試#$this->db->data_seek(0);代替$milestones->data_seek(0);

+0

好主意,但沒有去。致命的錯誤也在那一個。 –

0

您可以嘗試$milestones->_data_seek(0);但我沒有在使用了一段時間笨,也應該是一個私有方法,在至少它曾經是。

+0

這不會導致錯誤,但它也不會重置指針。我看着核心代碼,它應該。我在想,當foreach被用於循環時,php正在控制並強制指針成爲php想要的地方。爲了測試它,我把它放在foreach中,並期望有一個無限循環,但是它將所有記錄循環,好像它不在那裏一樣。 –

+0

@TimDuncklee奇怪,但在這種情況下,我恐怕我不知道... – jeroen