Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авто завершение транзакции 
V
    Опции темы
Aver78
Дата 23.5.2018, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Есть таблицы в innodb.
Переменной $GLOBALS['db'] присваивается экземляр класса который отвечает за запросы к бд.
Есть класс, скажем А, который создает экземпляр класса Б и вызывает его методы.
Класс Б вызывает метод $GLOBALS['db'] который стартует транзакцию.

Проблемы начинаются при попытке сделать commit. Если вызывать Его в классе б, то все работает нормально. Но если попытаться вызвать его в классе а, после того как класс Б закончил работу, то коммит не отрабатывает.

Не могу понять почему.
 
PM MAIL   Вверх
Akina
Дата 23.5.2018, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(Aver78 @  23.5.2018,  12:09 Найти цитируемый пост)
коммит не отрабатывает.

Ну как любят некоторые товарищи грубо отвечать, "не работают только негры в африке".

Что значит "не отрабатывает"? 
Каковы внешние эффекты "неотрабатывания"? или наоборот, какие эффекты отсутствуют?
На сервер запрос 
Код

commit;
поступает (см. general log)? 
А поступает - в том же connection?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Aver78
Дата 23.5.2018, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Цитата

Что значит "не отрабатывает"? 


Значит инсерты и апдейты не фиксируются. А есть еще какой то вариант не отрабатывания (это я не стебусь, может правда есть)?

Цитата

На сервер запрос 

Ну, не вижу ни одной причины что бы он не поступал(все остальные же запросы поступают и до исполнения кода в том месте тоже, точно, доходит), а принудительного закрытия соединения не существует, у меня, в принципе. Да, в том же коннекте.

В логах ошибок нет. Впрочем там висит обработка исключений, ошибки я вижу сразу.
PM MAIL   Вверх
Aver78
Дата 23.5.2018, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Цитата

и до исполнения кода в том месте тоже, точно, доходит


Ан нет, не доходит при некоторых условиях, как выяснилось.
PM MAIL   Вверх
Akina
Дата 23.5.2018, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Собсно голый commit при отсутствии транзакции ничем не вредит - вполне можно на выходе из А (но до закрытия соединения) заслать туда коммит без всяких условий.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1056 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.