推进一个保存调用而不是每行一个
Propel one save call instead of one for each row
有没有一种方法可以发出一个 INSERT 语句而不是对每个对象调用 save() 方法?我可以在 PropelObjectCollection 上调用 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()
一次,使用 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();
有没有一种方法可以发出一个 INSERT 语句而不是对每个对象调用 save() 方法?我可以在 PropelObjectCollection 上调用 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()
一次,使用 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();