如何在Doctrine中一次性调用save()
方法将多行插入到表中
发布于 2011-03-24 16:54:42
将每条记录添加到集合对象上的调用save()
的Doctrine_Collection
。
$collection = new Doctrine_Collection('tablename');
$collection->add($record1);
$collection->add($record2);
$collection->add($record3);
$collection->add($record4);
$collection->save();
只有当所有记录都在同一个表中时,这才能起作用。否则你就不走运了。
发布于 2011-08-03 00:20:47
这里是另一个解决方案,在Doctrine 1.2上进行了测试。不需要保存每条记录,flush()会自动找出所有未保存的实例并将它们全部保存。
$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();
发布于 2015-10-27 23:14:03
如果你使用symfony2,那就太简单了
// 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();
https://stackoverflow.com/questions/5415725
复制相似问题