magento打印sql语句
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);