在 Symfony 1.4 和 Doctrine 中使用一个查询插入多行

Insert multiple rows with one query in Symfony 1.4 and Doctrine

我有客户集合,每个集合可以包含很多客户。此 PHP 代码循环集合,以及每个集合中的客户端。并将客户端保存到数据库中。

foreach ($collections as $key => $collection) {
      foreach ($collection as $k => $client) {
                 $name = $client['name'];
                 //...
                 $clientObj = new Client();
                 $clientObj->setName($name);
                 //..
                 $clientObj->save();
      }
}

我想做的是将每个集合分组到一个 Mysql 查询中,然后转到下一个集合。因为前面的代码对每个客户端执行一个查询,并且为了性能,我们需要每个集合执行一个查询。

我们该怎么做?

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

 * Saves all records of this collection and processes the 
 * difference of the last snapshot and the current data

例如:

$collection = new Doctrine_Collection('client');
$collection->add($client1);
$collection->add($client2);
$collection->save();