इस उत्तर के अनुसारए> , Doctrine2 आपको कई INSERT कथनों को एक में संयोजित करने की अनुमति नहीं देता है:
आप यहां Doctrine2 बैच प्रोसेसिंग के बारे में अधिक पढ़ सकते हैं:http://www .doctrine-project.org/blog/doctrine2-batch-processing.html
आप या तो डीबीएएल पर स्विच कर सकते हैं या इंसर्ट की एक निर्धारित राशि के बाद अपने इकाई प्रबंधक को फ्लश करके अपने डेटा को छोटे बैचों में संसाधित करने का सहारा ले सकते हैं:
$batchSize = 20;
foreach ($items as $i => $item) {
$product = new Product($item['datas']);
$em->persist($product);
// flush everything to the database every 20 inserts
if (($i % $batchSize) == 0) {
$em->flush();
$em->clear();
}
}
// flush the remaining objects
$em->flush();
$em->clear();