magente测试时,总是需要打印sql来看看

但不同的sql连接方式有不同的打印方式,这里做一下记录

第一种: echo $select->assemble();

$select = $this->_getReadAdapter()->select()
         ->from($this->getMainTable())
         ->where('is_active=?','0')
         ->where('relieve_at>:relieve_at or relieve_at IS NULL')
         ->order('id desc');
     $result = $this->_getReadAdapter()->fetchAll($select,$binds);

第二种:echo $order_collection->getSelectSql(true).'<hr />';

$order_collection = Mage::getResourceModel('sales/order_collection')
                      ->addFieldToFilter('state', array('in' => array(Mage_Sales_Model_Order::STATE_NEW,Mage_Sales_Model_Order::STATE_PENDING_PAYMENT)))
                      ->addFieldToFilter('created_at', array('gt' => $create_at))
                      ->addFieldToFilter('customer_id', $order->getCustomerId());
       $search_black = $blacklist->getDisabledBlacklist();
       if($search_black){
         $order_collection->addFieldToFilter('entity_id', array('gt' => $search_black['bind_id']));
       }

第三种:echo $select->__toString().'<hr />';

        $adapter = $this->_getReadAdapter();

        $positionCheckSql = $adapter->getCheckSql('value.position IS NULL', 'default_value.position', 'value.position');

        // Select gallery images for product
        $select = $adapter->select()
            ->from(
                array('main'=>$this->getMainTable()),
                array('value_id', 'value AS file')
            )
            ->joinLeft(
                array('value' => $this->getTable(self::GALLERY_VALUE_TABLE)),
                $adapter->quoteInto('main.value_id = value.value_id AND value.store_id = ?', (int)$product->getStoreId()),
                array('label','position','disabled')
            )
            ->where('main.attribute_id = ?', $object->getAttribute()->getId())
            ->where('main.entity_id = ?', $product->getId())
            ->order($positionCheckSql . ' ' . Varien_Db_Select::SQL_ASC);