Я использую доктрину для вставки объемных данных в sql. Но после вставки от 600 до 700 записей выдает ошибку Fatal error: Исчерпан допустимый размер памяти 33554432 байт (пробовал выделить 24 байта)
Я попытался увеличить лимит памяти php, но это не сработало.
Вот мой код:
function DB_InsertPostTag ($postID, $listSize, $tagList, $tagTypeID,$categoryid) {
$returnVal = 0;
$insertList = array(1=>'');
$insertCount = 0;
sort($tagList);
$tagCount = 0;
for ($i = 0; $i <$listSize; $i++)
{
$tagCount++;
if(isset($tagList[$i+1]))
{
if ($tagList[$i] != $tagList[$i+1])
{
$insertCount++;
$tagList[$i];
$tagCount = 0; //reset the counter
}
}
//else we just ramp the counter
}
$batchSize = 1;
for ($i = 1; $i < $insertCount; $i++)
{
$post_tag = new PostTag();
$post_tag->setPostId($postID);
$post_tag->setCategoryId($categoryid);
$post_tag->setTagId($tagList[$i]);
$post_tag->setTagTypeId($tagTypeID);
$post_tag->setTagCount($tagCount);
$em1 = $this->em;
$em1->persist($post_tag);
$id = $post_tag->getId();
if (($i % $batchSize) == 0) {
$em1->flush();
$em1->clear(); // Detaches all objects from Doctrine!
}
}
$em1->flush();
$em1->clear();
$returnVal = $id;
return $returnVal;
}