0

magento 升级 1.5.1.0 >> {1.6.2.0,1.7.0.2,1.8.0.0} 我试图删除所有模块,直接升级复制文件并使用 magento 下载器,每次我得到这个错误时都没有运气。但是它在哪里以及为什么会失败,如何正确调试它?

Error in file: "Z:\home\www\store\app\code\core\Mage\Core\sql\core_setup\mysql4-upgrade-1.5.9.9-1.6.0.0.php" 
- SQLSTATE[HY093]: Invalid parameter number: no parameters were bound

Trace:
#0 Z:\home\www\store\app\code\core\Mage\Core\Model\Resource\Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 Z:\home\www\store\app\code\core\Mage\Core\Model\Resource\Setup.php(437): Mage_Core_Model_Resource_Setup->_modifyResourceDb('upgrade', '0.8.28', '1.6.0.3')
#2 Z:\home\www\store\app\code\core\Mage\Core\Model\Resource\Setup.php(320): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('0.8.28', '1.6.0.3')
#3 Z:\home\www\store\app\code\core\Mage\Core\Model\Resource\Setup.php(235): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 Z:\home\www\store\app\code\core\Mage\Core\Model\App.php(417): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 Z:\home\www\store\app\code\core\Mage\Core\Model\App.php(343): Mage_Core_Model_App->_initModules()
#6 Z:\home\www\store\app\Mage.php(683): Mage_Core_Model_App->run(Array)
#7 Z:\home\www\store\index.php(87): Mage::run('', 'store')
#8 {main}
4

1 回答 1

0

要启用 PDO MySQL Debug 需要编辑这个文件:/lib/Varien/Db/Adapter/Pdo/Mysql.php

protected $_debug               = true;

然后我们打开这个文件:/lib/Zend/Db/Statement/Pdo.php,将这行替换为 234 左右:

throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);

使用此代码:

$msg = "SQL ERROR: ". $e->getMessage() . "\n";
            $msg .= "SQL QUERY:" . $this->_stmt->queryString."\n";
            if(!empty($params)) {
                $msg .= "SQL PARAMS: ('". implode("','", $params) ."')\n";
            }
            $dbsEx = new Zend_Db_Statement_Exception($msg, (int) $e->getCode(), $e);
            throw $dbsEx;

所以现在我们将得到一个文件夹/var/ debug /,并在这个文件中找到文件pdo_mysql.log ,我们现在有完整的mysql错误和完整的mysql查询。您可以轻松地在 phpmyadmin 中执行那些失败的查询或编辑数据库表、参数等。

我很高兴。

于 2013-10-05T17:05:42.900 回答