我有几千个动态 ID,比如产品。 现在我想加载这些产品而不向数据库发送超过一千个查询。 所以这不是解决方案:
$products = array();
foreach( $ids as $id ){
$products[] = Mage::getModel('catalog/product')->load($id);
}
但是因为我需要完整产品,所以这也不是解决方案:
$products = Mage::getModel('catalog/product')->getCollection();
$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );
所以..我真的必须加载
每个产品吗,这可能会导致 超过 3000 个查询,并且需要几个分钟?
最佳答案
你应该这样做:
$products = Mage::getModel('catalog/product')->getCollection();
foreach (<product attributes> as <attribute code>) {
$products->addAttributeToSelect(<attribute code>);
}
然后做
$products->addFieldToFilter( 'entity_id', array( 'in', $ids ) );
关于php - 从数据库加载多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079356/