parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Парсер сам транзакций не делает...

Sumo 25.10.2016 18:58 / 25.10.2016 18:59

Грубое описание того, что происходит.

Оператор connect берет соединение из менеджера sql-драйверов. Выполняет код. Вызывает метод commit соединения или rollback, если в коде всплыло исключение и «закрывает» соединение методом close. Реальное закрытие соединения не происходит — оно кешируется в менеджере.

Метод commit в драйвере мускуля дает sql-запрос «commit;» только если в параметрах драйвера установлен параметр autocommit=0.

Никакого begin не делается, иначе это бы автоматом отключило autocommit и начало новую транзакцию, что тупо покрушило бы наш код, если бы мы уже вручную начали транзакцию — вложенных транзакций в мускуле нет.

Поэтому вся работа с транзакциями должна быть сделана вручную, т.е. явно вызваны begin и commit. Использовать параметр autocommit=0 в строке соединения не нужно никогда. :)