我刚刚将我的网站变为现场,因为我不得不将我的数据库更新到网站销售订单和交易的当前标准,而不是那么他们只是排成一行。我将销售文件从实时数据库导入到即将上线的数据库中,该数据库在此之前一直运行良好。更新后的销售和订单文件更新后,我的结帐流程在点击“下订单”的最后一步失败。它进入提交过程,然后只是出现一条弹出消息,指出“处理过你的错误”请联系我们或稍后再试。“点击没关系,你只需盯着你的等车。我环顾四周,尝试了一些事情,但没有用。所以我都知道堆叠工作人员了!
这是我现在得到的错误日志;
exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /www/www/store/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /www/www/store/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement- >execute(Array)
#1 /www/www/store/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /www/www/store/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /www/www/store/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `sales_f...', Array)
#5 /www/www/store/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `sales_f...', Array)
#6 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(825): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#7 /www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
#8 /www/www/store/app/code/core/Mage/Sales/Model/Quote.php(1637): Mage_Sales_Model_Resource_Quote->isOrderIncrementIdUsed('100014532')
#9 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(147): Mage_Sales_Model_Quote->reserveOrderId()
#10 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#11 /www/www/store/app/code/core/Mage/Checkout/Model/Type/Onepage.php(785): Mage_Sales_Model_Service_Quote->submitAll()
#12 /www/www/store/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder()
#13 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction()
#14 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#15 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#16 /www/www/store/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#17 /www/www/store/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#18 /www/www/store/index.php(87): Mage::run('', 'store')
#19 {main}
Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /www/www/store/lib/Zend/Db/Statement/Pdo.php:234
Stack trace:
#0 /www/www/store/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /www/www/store/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /www/www/store/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `sales_f...', Array)
#4 /www/www/store/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `sales_f...', Array)
#5 /www/www/store/lib/Zend/Db/Adapter/Abstract.php(825): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#6 /www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
#7 /www/www/store/app/code/core/Mage/Sales/Model/Quote.php(1637): Mage_Sales_Model_Resource_Quote->isOrderIncrementIdUsed('100014532')
#8 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(147): Mage_Sales_Model_Quote->reserveOrderId()
#9 /www/www/store/app/code/core/Mage/Sales/Model/Service/Quote.php(249): Mage_Sales_Model_Service_Quote->submitOrder()
#10 /www/www/store/app/code/core/Mage/Checkout/Model/Type/Onepage.php(785): Mage_Sales_Model_Service_Quote->submitAll()
#11 /www/www/store/app/code/core/Mage/Checkout/controllers/OnepageController.php(579): Mage_Checkout_Model_Type_Onepage->saveOrder()
#12 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction()
#13 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#14 /www/www/store/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#15 /www/www/store/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#16 /www/www/store/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#17 /www/www/store/index.php(87): Mage::run('', 'store')
#18 {main}
我可以看到他们都处理相同的无效参数,但我假设我只修复了一个单一参数(这可能只是我假设的一个个人用户帐户的参数)它仍然会出错另外,没有有效地解决问题。所以我不得不问,这是否让任何人知道我为了炸毁我的商店而做了什么?!真的感谢你们的时间!
答案 0 :(得分:0)
首先,查看您的具体错误
例外' PDOException'消息SQLSTATE [HY093]:参数号无效:参数未定义
这是PHP的数据库层说"有人用我错了"。具体来说,看起来有人使用参数化查询,其中包含空白和/或无效参数。
其次,看着你的堆栈跟踪,我注意到了这一点。
/www/www/store/app/code/local/Mage/Sales/Model/Resource/Quote.php(169): Zend_Db_Adapter_Abstract->fetchOne(Object(Varien_Db_Select), Array)
具体来说,看起来您或某人已为报价资源模型创建了代码池覆盖。在其他条件相同的情况下,我发现您可能会从核心文件中对此文件所做的更改导致您的问题。可能在这种方法中(第169行)
#File: app/code/core/Mage/Sales/Model/Resource/Quote.php
public function isOrderIncrementIdUsed($orderIncrementId)
{
$adapter = $this->_getReadAdapter();
$bind = array(':increment_id' => (int)$orderIncrementId);
$select = $adapter->select();
$select->from($this->getTable('sales/order'), 'entity_id')
->where('increment_id = :increment_id');
$entity_id = $adapter->fetchOne($select, $bind);
if ($entity_id > 0) {
return true;
}
return false;
}
我的猜测是你和$bind
数组
$entity_id = $adapter->fetchOne($select, $bind);
或在SQL中包含其他未被考虑的查询参数。
->where('increment_id = :increment_id');