我在Magento编写了一个手动脚本,用于在付款流程中记录我的交易。成功事务后MySQL查询工作正常,我可以在MySQL中看到数据。但是我的查询在不成功的付款后回滚(看起来像插入和删除)。当我查看我的MySQL表时,我可以看到自动增量增加但没有数据。
我的代码如下。如何阻止Magento回滚我的查询?
$conn = Mage::getSingleton('core/resource')->getConnection('core_write');
$results = $conn->query("insert into pos_transactions(order_id, transaction_time, ip, type) values('$orderId', '$sysDate', '$ip', 'Auth')");
答案 0 :(得分:0)
这对我有用(在Magento Enterprise Edition 1.10中测试):
$ inSql =“INSERT INTO my_table(fieldA
,fieldB
)”;
$ inSql。=“VALUES('$ valueA','$ valueB'); commit;”;
法师:: getSingleton( '芯/资源') - >的getConnection( 'core_write') - >查询($ INSQL);
我希望这适合你。
答案 1 :(得分:0)
set table DB engine = MYISAM; 因为MYISAM不支持事务提交和回滚功能。
http://en.wikipedia.org/wiki/MyISAM (MyISAM的主要缺点是没有交易支持。)
答案 2 :(得分:0)
你可以使用:
$conn = Mage::getModel('core/resource')->getConnection('core_write');
而不是
$conn = Mage::getSingleton('core/resource')->getConnection('core_write');
Magento将创建一个与数据库的新连接,因为您没有使用Singleton,并且这个新连接不会有任何打开的事务。