Как отключить откат запроса MySQL в Magento после неудачной операции оплаты? - PullRequest
1 голос
/ 25 февраля 2011

Я кодировал ручной скрипт в 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')");

Ответы [ 3 ]

0 голосов
/ 27 февраля 2013

установить таблицу DB engine = MYISAM; потому что транзакция фиксации и отката транзакции не поддерживается MYISAM.

http://en.wikipedia.org/wiki/MyISAM (Основной недостаток MyISAM - отсутствие поддержки транзакций.)

0 голосов
/ 26 сентября 2013

Вы можете просто использовать:

$conn = Mage::getModel('core/resource')->getConnection('core_write');

вместо

$conn = Mage::getSingleton('core/resource')->getConnection('core_write');

Magento создаст новое соединение с базой данных, поскольку вы не используете Singleton, и у этого нового соединения не будет открытой транзакции.

0 голосов
/ 08 июня 2011

Это работает для меня (проверено в Magento Enterprise Edition 1.10):

$ inSql = "INSERT INTO my_table (fieldA, fieldB)";
$ inSql. = "VALUES ('$ valueA', '$ valueB'); commit;"; Mage :: getSingleton ( 'ядро / ресурс') -> GetConnection ( 'core_write') -> запрос ($ InSQL);

Я надеюсь, что это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...