西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

magento中查看执行的sql语句

时间:2016-11-08 09:45来源:未知 作者:好模板 点击:
在开发的时候,经常需要看到magento所生成的sql语句,一般来说分为以下的两种情况: (1)只需要查看某个sql语句: $collection_of_products = Mage::getModel(catalog/product)-getCollection(); //var_dump(
在开发的时候,经常需要看到magento所生成的sql语句,一般来说分为以下的两种情况:
 
(1)只需要查看某个sql语句:
 
 
$collection_of_products = Mage::getModel('catalog/product')->getCollection();  
//var_dump($collection_of_products->getSelect()); //might cause a segmentation fault  
var_dump(  
    (string) $collection_of_products->getSelect()  
);  
 
 
(2)查看mangento 所查生的所有sql,MySQL 提供了slow query的日志,但这个方法不是最简单的,事实上magento已经提供了log sql 的功能,但默认是不开启的(试想一下,如果默认是开启的,那么这个文件会变得无比巨大,而且对性能的影响很多)。
 
 
在lib/Varien/Db/Adapter/Pdo/Mysql.PHP 中,有以下几个变量,根据实际需要设置合适的值则可
 
 
 
/** 
 * Write SQL debug data to file 是否开启log 
 * 
 * @var bool 
 */  
protected $_debug               = false;  
  
/** 
 * Minimum query duration time to be logged 如果sql语句执行超过一定时间,则log下来,这个选项对于查询那些慢查询很有用 
 * 
 * @var unknown_type 
 */  
protected $_logQueryTime        = 0.05;  
  
/** 
 * Log all queries (ignored minimum query duration time) 记录下所有的查询,如果这个为真,则$_logQueryTime不起作用 
 * 
 * @var bool 
 */  
protected $_logAllQueries       = false;  
  
/** 
 * Add to log call stack data (backtrace)  记录下堆栈  
 * 
 * @var bool 
 */  
protected $_logCallStack        = false;  
  
/** 
 * Path to SQL debug data log  日志存放的位置 
 * 
 * @var string 
 */  
protected $_debugFile           = 'var/debug/sql.txt';  
 
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------