【发布时间】:2013-08-29 18:03:01
【问题描述】:
如果全部插入的话,我需要在 Yii 中插入多个 ActiveRecord 对象
$transaction = Yii::app()->db->beginTransaction();
for ($i = 0;$i < 10;$i++){
$model = new Mymodel();
$model->x = $i;
if (!$model->save()){
$transaction->rollback();
break;
}
}
if ($transaction->active)
$transaction->commit();
现在我需要在一个查询中插入所有这些,在使用活动记录时如何做?
【问题讨论】:
-
你不能使用 ActiveRecord。
-
@MichaelHartl: 有没有手写查询的替代方法?
-
您可以使用DAO 或query builder。不过,它们都不会减轻您手动编写插入的负担。
-
为什么需要将它们全部作为一个查询插入?当然,几乎完全按照您的方式使用事务,您可以作为单独的查询插入,但仍然可以在必要时回滚,
-
@ZackNewsham:批量插入有一些好处,执行查询比执行查询快,它在你的php和数据库之间使用更少的网络等等。
标签: activerecord yii insert yii1.x