获取-调试SQL查询-Magento


Get - Debug SQL query - Magento

如何获得此的SQL查询?

$product = Mage::getModel('catalog/product')->load(4329)->getCategoryIds();

要在magento中启用sql调试,请在您喜欢的文本编辑器中打开文件lib/Varien/Db/Adapter/Pdo/Mysql.php。在第86行附近,您将看到以下类变量:

    /*
     * Write SQL debug data to file
     *
     * @var bool
     */
    protected $_debug               = false;
    /**
     * Minimum query duration time to be logged
     *
     * @var unknown_type
     */
    protected $_logQueryTime        = 0.05; 
    /**
     * Log all queries (ignored minimum query duration time)
     *
     * @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';

更改以下变量:

 protected $_debug               = true; //false;

 protected $_logAllQueries       = true; //false;.

这就是全部。运行应用程序goto-sql.txt后,您将看到所有查询。

echo Mage::getModel('catalog/product')->load(4329)->getCategoryIds()->getSelect();

应该工作

在Zend_Db_Select类型的对象(例如Varien_Db_Select)上,可以调用Method assembly()来获取SQL查询字符串。