activerecord 这个class文件update方法里面如何下:
public function update($runvalidation = true, $attributenames = null)
{ if ($runvalidation && !$this->validate($attributenames)) { yii::info('model not updated due to validation error.', __method__); return false; } if (!$this->istransactional(self::op_update)) { return $this->updateinternal($attributenames); } $transaction = static::getdb()->begintransaction(); try { $result = $this->updateinternal($attributenames); if ($result === false) { $transaction->rollback(); } else { $transaction->commit(); } return $result; } catch (\exception $e) { $transaction->rollback(); throw $e; }}
为什么update底层也用了事务操作,如果在外面也开启事务,事务嵌套,会造成什么影响?
回复内容: activerecord 这个class文件update方法里面如何下:
public function update($runvalidation = true, $attributenames = null)
{ if ($runvalidation && !$this->validate($attributenames)) { yii::info('model not updated due to validation error.', __method__); return false; } if (!$this->istransactional(self::op_update)) { return $this->updateinternal($attributenames); } $transaction = static::getdb()->begintransaction(); try { $result = $this->updateinternal($attributenames); if ($result === false) { $transaction->rollback(); } else { $transaction->commit(); } return $result; } catch (\exception $e) { $transaction->rollback(); throw $e; }}
为什么update底层也用了事务操作,如果在外面也开启事务,事务嵌套,会造成什么影响?