Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 最后一步的签出失败_Php_Magento_Pdo_Checkout - Fatal编程技术网

Php 最后一步的签出失败

Php 最后一步的签出失败,php,magento,pdo,checkout,Php,Magento,Pdo,Checkout,我正处于网站上线的边缘,因为我必须更新我的数据库,使之符合网站当前的销售订单和交易标准,以及其他标准,所以它们正好符合标准。我将销售文件从live数据库导入到即将推出的live数据库,在此之前该数据库一直运行良好。一旦更新了销售和订单文件,我的结账过程在点击“下订单”的最后一步就失败了。。它进入提交过程,然后简单地弹出一条消息,说明处理订单时出错。请与我们联系或稍后再试。点击OK,然后你就盯着等待的购物车。我环顾四周,尝试了一些东西,但都没有用。所以我来找你们,你们都知道stack crew 这

我正处于网站上线的边缘,因为我必须更新我的数据库,使之符合网站当前的销售订单和交易标准,以及其他标准,所以它们正好符合标准。我将销售文件从live数据库导入到即将推出的live数据库,在此之前该数据库一直运行良好。一旦更新了销售和订单文件,我的结账过程在点击“下订单”的最后一步就失败了。。它进入提交过程,然后简单地弹出一条消息,说明处理订单时出错。请与我们联系或稍后再试。点击OK,然后你就盯着等待的购物车。我环顾四周,尝试了一些东西,但都没有用。所以我来找你们,你们都知道stack crew

这是我现在得到的错误日志

    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}

我可以看到他们都在处理同一个无效参数,但我假设如果我只修复一个参数,这可能只是我个人制作的用户帐户的参数,我认为它仍然会对其他一些错误,不能有效地解决问题。所以我不得不问,这能让任何人知道我到底做了什么来炸毁我的商店吗?!谢谢你们抽出时间,伙计们,真的

首先,查看您的具体错误

异常“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数组

或者在SQL中包含未考虑的其他查询参数

->where('increment_id = :increment_id');

有人试图使用PDO在准备好的查询中设置参数。但在准备查询时未定义参数。但如果没有任何进一步的信息,这将是一个猜测游戏。你说你环顾四周,试了一些东西。你发现了什么,你尝试了什么,结果是什么?这是一个类似的线程,我看了一遍,并尝试了可能的修复,如移动报价文件和修改它,但仍然继续相同的问题,甚至建立了另一个,所以这是扔掉。。我多次尝试重新导入db,确保禁用外键,因为magento一直在这些挂钩上播放,但仍然没有更改。该线程讨论了一个完全不同的问题。您需要搜索得到的错误:参数编号无效:未定义参数。还要检查您是否正在运行此Magento软件的最新版本。否则这很可能是一个bug,你可能想加入他们自己的论坛并报告它。因为那里有些东西很不对劲;他们的代码准备了一个SQL查询,然后试图在其中设置一个不存在的参数。听起来像个bug。哎呀,完全链接错了页面!那是关于这个问题的那一页。不过,他们也说这是一个可能的错误。该线程还讨论了一个不同的错误。不要看大堆栈跟踪。它们看起来总是一样的。嗯,有点。只有第一行对您很重要,特别是错误代码:HY093。这表明了核心问题。我真的会在他们的论坛中打开一个主题,并包含与您在这里发布的相同的完整错误消息和堆栈跟踪。直到我解决此错误之前,据我所知,我至少从未接触过quote.php,可能是某个扩展攻破了它?但也就是说,当我导入时,我只是导入了所有的销售文件来更新后端订单和发货,这很成功,但显然是通过在结帐时使用扳手,你认为将目录与销售文件,甚至可能是客户一起导入会有任何改变吗?1。有人编辑了它,否则它就不会出现在本地。2.有选择地导入magento数据库表是疯狂的,只会导致撕裂。3.当PHP告诉你这个问题时,为什么要猜测错误?你所需要做的就是找出$bind/参数不好的原因,然后你就会得到答案。谢谢你的洞察力:明天我肯定会更深入地研究这个问题,我对这一切都还很新鲜。。我将查看阶段版本,看看这些文件(即quote.php)与我的本地版本特别是第2点相比是否有任何更改。。。Magento的数据库交互比大多数关系系统更复杂,而且很容易出错;我的购物车又能开了。我相信 主要的问题是拥有多次购物的能力,因为第一次购物会给出一个特定的id,而且很好,第二次尝试购物会尝试使用相同的id和冲突。正如你们已经知道的,我是一个新的学习者,是一种火的考验。我删除了整个local quote.php区域,因为我只是在排除故障时才包含它。然后它给了我一个错误;'SQLSTATE[23000]:完整性约束冲突:1062项重复输入“100014536”,用于关键字“UNQ\U销售\U平面\U订单\U增量\U ID”
->where('increment_id = :increment_id');