2010-07-17 27 views
1

我試圖讓這個循環來保存一個新的記錄到CakePHP的數據庫在每次迭代,但由於某種原因,它只能保存在最後一個(所以在這種情況下,它保存了一個名爲「test9」的記錄,但沒有其他..這種類型的保存已經爲我工作到目前爲止cakephp,我完全難倒了這一點,我將不勝感激任何意見Cakephp通過數據庫循環保存,出於某種原因它只保存在循環的最後一個實例上?

調試輸出只是爲每個記錄(包括保存工作),所以我不能從它確定任何東西:

26 SELECT COUNT()AS count FROM proxylinks AS Proxylink WHERE Proxylinkid = 13 1 1 0 。 27 SELECT COUNT()AS count FROM proxylinks AS Proxylink WHERE Proxylinkid = 13 1 1 0 28 UPDATE proxylinks SET link ='test9'其中proxylinksid = 13 1 0

$count = 10; 
    $v = 1; 
     do { 

      ######### save link to database 
      $this->Prox->Proxylink->set(array('link' => 'test' . $v)); 
      $this->Prox->Proxylink->save(); 

      $v++; 
     } while ($v < $count); 

回答

5

你必須call ->create(),否則它的更新之前保存的記錄。

引述手冊:

當調用在一個循環save,不要忘記調用create()

+0

謝謝..是的,我剛剛看到,其實,對不起問一個愚蠢的問題:) ..它只是我可以發誓它工作正常之前,我會在那裏創建一個新的行,沒有我這樣調用我想我從未意識到這是必要的 – Rick 2010-07-17 07:25:00