php - Yii 事务批量插入数据
伊谢尔伦
伊谢尔伦 2017-04-10 14:43:52
0
2
299
$transaction=Yii::app()->db->beginTransaction(); try{ $model1->save(); $model2->save(); $model3->save(); $model4->save(); $model5->save(); //出错 $model6->save(); $transaction->commit(); } catch(Exception $e){ $transaction->rollBack(); }

model1 , model2 , model3 , model4 , model5 照样存储成功!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all (2)
迷茫

如果在$model6->save()可能是因为某种原因没能成功插入或更新数据,这时候会返回false,但不会有异常抛出来驱动事物回滚。你应该判断如果save时返回了false,即没有插入或更新成功,应该手动抛出Exception,这样在捕获Exception后可以rollback。

$transaction=Yii::app()->db->beginTransaction(); try{ foreach ($models as $model) { if (!$model->save()) { throw new Exception(); } } $transaction->commit(); } catch(Exception $e){ $transaction->rollBack(); }
    左手右手慢动作

    先检查你的表引擎是否是innodb类型的,www.phpernote.com 提供技术支持。

      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!