有没有办法发出一个INSERT语句而不是在每个对象上调用save()方法?我可以在PropelObjectCollection上调用save()吗?
有没有办法可以调用一个save语句并保存一整行而不是每行调用一次?
为了说明,我目前有这段代码:
while($node = $streamer->getNode())
{
$profile = simplexml_load_string($node);
$profileHandler = new Profile();
$profileHandler->setBlob($profileXml);
$profileHandler->setUserId($userId);
$profileHandler->setHome($profile->home);
$profileHandler->setJob($profile->job);
$profileHandler->setTown($profile->town);
$profileHandler->setUpdatedat($profile['updated']);
$profileHandler->save();
}
我可以在while循环结束时调用一个save方法吗?或者这是唯一的方法吗?
答案 0 :(得分:1)
可以使用Save()
拨打PropelObjectCollection
一次,试试这个:
$tempArray = [];
while($node = $streamer->getNode())
{
$profile = simplexml_load_string($node);
$tempArray[] = [
'Blob' => $profileXml,
'UserId' => $userId,
'Home' => $profile->home,
'Job' => $profile->job,
'Town' => $profile->town,
'Updatedat' => $profile['updated']
];
}
$oCollection = new PropelObjectCollection();
$oCollection->setModel('Profile');
$oCollection->fromArray($tempArray);
$oCollection->save();