2012-03-12 59 views
0

getLastInsertID和Model-> id是否一樣?哪一個可以發生併發問題?cakephp getLastInsertID/Model-> id

$this->Model->save($this->data); 
__thisFunctionTakesAVeryLongTimeToExecute(); //function 1 
$insertId = $this->Model->getLastInsertId(); 

getLastInsertId()從我保存的上面2行數據中返回ID。還是會返回創建的最新ID?

我的意思是 如果當函數1(__thisFunctionTakesAVeryLongTimeToExecute();)執行另一個用戶做另一次保存時會發生什麼。那麼我會得到哪個ID?

回答

0
$this->Model->id 

用於設置一個id並讀取或修改相關的數據。

$this->Model->getLastInsertID(); 

返回在這個模型中最後插入的行的ID。

對於你最後的問題,做一個測試!並在此發佈您的答案。

0

我有另一個類似的問題。 如果我把

$oid = $this->Home->Order->getLastInsertID(); 
$order = $this->Home->Order->find('first',array('conditions'=>array('Order.id'=>$oid))); 

模型協會秩序及其的hasMany表被破壞之間。

如果我把

$oid = 1; // for example 
$order = $this->Home->Order->find('first',array('conditions'=>array('Order.id'=>$oid))); 

模型協會保持!!!!

0

下面代碼用於CakePHP的3.0或以上

$result = $this->ModelName->save($data) 
echo $result->id;