getLastInsertID和Model-> id是否相同?哪一个可能发生并发问题?
$this->Model->save($this->data);
__thisFunctionTakesAVeryLongTimeToExecute(); //function 1
$insertId = $this->Model->getLastInsertId();
getLastInsertId()是否从我上面保存2行的数据中返回ID。或者它是否返回创建的最新ID?
我的意思是 如果函数1(__thisFunctionTakesAVeryLongTimeToExecute();)执行另一个用户执行另一次保存时会发生什么。那我会得到哪个ID?答案 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;