cakephp getLastInsertID / Model-> id

时间:2012-03-12 06:51:31

标签: cakephp cakephp-1.3

getLastInsertID和Model-> id是否相同?哪一个可能发生并发问题?

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

getLastInsertId()是否从我上面保存2行的数据中返回ID。或者它是否返回创建的最新ID?

我的意思是 如果函数1(__thisFunctionTakesAVeryLongTimeToExecute();)执行另一个用户执行另一次保存时会发生什么。那我会得到哪个ID?

3 个答案:

答案 0 :(得分:0)

 $this->Model->id

用于设置ID并读取或修改相关数据。

$this->Model->getLastInsertID();

返回此模型中最后一个插入行的id。

关于你的上一个问题,请进行测试!并在此处发布您的答案。

答案 1 :(得分:0)

我有另一个类似的问题。 如果我把

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

Order与其hasMany表之间的模型关联被销毁。

如果我把

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

维护模型关联!!!!

答案 2 :(得分:0)

  

使用下面的cakePHP 3.0或以上代码

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