У меня есть PHP-скрипт, который работает как с базой данных MySQL, так и с подключением ODBC DB (QODBC в QuickBooks). Установка выглядит так:
Retrieve rows from MySQL database
Begin MySQL transaction:
Loop through rows
Process data
MySQL Insert/Update
MySQL Update
QODBC Selects/Inserts
End Loop
MySQL Delete
Commit Transaction
Проблема в том, что в случае ошибки в разделе QODBC команды MySQL до этого момента будут зафиксированы. Это приводит к дублированию и неправильным данным в MySQL. Нет вложенных транзакций, и все запросы успешно / неудачно обрабатываются (т.е. нет фатальных ошибок или преждевременного выхода из скрипта).
Вопрос в том - есть ли проблема при подключении к двум разным базам данных через PHP, в одном и том же скрипте? Кажется, что происходит, когда скрипт попадает в раздел ODBC, транзакция MySQL закрывается и автоматически фиксируется.