magento连接数据库的方法: 1
简单方式。限制性小
1.1
$write = Mage::getSingleton('core/resource')->getConnection('core_write'); $readresult=$write->query("SELECT eav_attribute_option_value.option_id, eav_attribute_option_value.value FROM eav_attribute_option_value INNER JOIN eav_attribute_option ON eav_attribute_option_value.option_id=eav_attribute_option.option_id WHERE eav_attribute_option.attribute_id=505 AND eav_attribute_option_value.option_id IN (".$brands.")"); while ($row = $readresult->fetch() ) { $brandlist[] = array('value'=>$row['option_id'], 'label'=>$row['value']); }
1.2
$resource = Mage::getSingleton('core/resource'); $read = $resource->getConnection('catalog_read'); $select = $read->select() //得到zend_db_select ->from(array('cp'=>$categoryProductTable)) ->join(array('pei'=>$productEntityIntTable),'pei.entity_id=cp.product_id', array()) ->joinNatural(array('ea'=>$eavAttributeTable)) ->where('cp.category_id=?', $categoryId) ->where('pei.value=1') ->where('ea.attribute_code="terry"'); $rows = $read->fetchAll($select); $ids = array(); foreach($rows AS $row) { $ids[] = $row['product_id']; } $ret = implode(',', $ids); return $ids; 2 一般用于magento,产品,分类等信息的修改。 通过 此处一般说的是eav模型中的collection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection 只要实现了下面的类的类, Varien_Data_Collection 都可以使用 public function getSelect() { $this->_select = $this->_conn->select(); return $this->_select; } 得到 Varien_Db_Select。 3 对于单个产品的查询和修改 根据ID值。或者唯一值。 $model = Mage::getModel('blog/blog')->load($id); 该方式信息比较全面。 4 $coll = Mage::getModel('blog/tag')->getCollection(); $sel = $coll->getSelect(); $coll->getSelect() 5 对于Mage::getResourceModel() 和Mage::getModel()->getCollection(); 得到的都是Get collection instance _setResourceModel($resourceName, $resourceCollectionName=null) 故 5.1 Mage::getResourceModel() 和Mage::getModel()->getCollection() 和Eav模型,都可以使用getSelect(); 6 Mage_Core_Model_Mysql4_Abstract 1 非eav模型: 1.1 resource collection model: AW_Blog_Model_Mysql4_Blog_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract Mage_Core_Model_Mysql4_Collection_Abstract extends Varien_Data_Collection_Db Varien_Data_Collection_Db extends Varien_Data_Collection 1.2 resource model AW_Blog_Model_Mysql4_Blog extends Mage_Core_Model_Mysql4_Abstract Mage_Core_Model_Mysql4_Abstract extends Mage_Core_Model_Resource_Abstract 2 对于eav模型: 2.1 resource collection model: Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collectionextends Mage_Catalog_Model_Resource_Eav_Mysql4_Collection_Abstract Mage_Catalog_Model_Resource_Eav_Mysql4_Collection_Abstract extends Mage_Eav_Model_Entity_Collection_Abstract Mage_Eav_Model_Entity_Collection_Abstract extends Varien_Data_Collection_Db Varien_Data_Collection_Db extends Varien_Data_Collection 2.2 resource model class Mage_Catalog_Model_Resource_Eav_Mysql4_Abstract extends Mage_Eav_Model_Entity_Abstract Mage_Eav_Model_Entity_Abstract extends Mage_Core_Model_Resource_Abstract implements Mage_Eav_Model_Entity_Interface model---> _getResource(得到resource model) 在resource中,可以使用的方法: _getReadAdapter() _getWriteAdapter()---->进而可以通过方法 public function select()得到Varien_Db_Select;