首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >原理-只用一次save()插入多行

原理-只用一次save()插入多行
EN

Stack Overflow用户
提问于 2011-03-24 14:51:58
回答 5查看 22.6K关注 0票数 21

如何在Doctrine中一次性调用save()方法将多行插入到表中

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-24 16:54:42

将每条记录添加到集合对象上的调用save()Doctrine_Collection

代码语言:javascript
复制
$collection = new Doctrine_Collection('tablename');
$collection->add($record1);
$collection->add($record2);
$collection->add($record3);
$collection->add($record4);
$collection->save();

只有当所有记录都在同一个表中时,这才能起作用。否则你就不走运了。

票数 31
EN

Stack Overflow用户

发布于 2011-08-03 00:20:47

这里是另一个解决方案,在Doctrine 1.2上进行了测试。不需要保存每条记录,flush()会自动找出所有未保存的实例并将它们全部保存。

代码语言:javascript
复制
$row = new \My_Doctrine_Record();
$row->name = 'aaa';
$row->approved = 1;

/// ...

$row = new \My_Doctrine_Record();
$row->name = 'val';
$row->approved = 'bbb';

Doctrine_Manager::connection()->flush();
票数 3
EN

Stack Overflow用户

发布于 2015-10-27 23:14:03

如果你使用symfony2,那就太简单了

代码语言:javascript
复制
// get the manager
$em = $this->getDoctrine()->getManager();

// enter the records
$em->persist($entitiy1);
$em->persist($entitiy2);
$em->persist($entitiy3);
$em->persist($entitiy4);
$em->persist($entitiy5);

// save the entries
$em->flush();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5415725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档