Comments 7
1. Вы используете не замыкания (даже если они так называются в PHP), а анонимные функции.
2. Вы очень странно начинаете транзакции. Почему нельзя делать begin?
2. Вы очень странно начинаете транзакции. Почему нельзя делать begin?
1. Вы используете не замыкания (даже если они так называются в PHP), а анонимные функции.
хоть вы и ответили чуть ниже на это, но я всё же напишу, что это всё-таки замыкания.
2. Вы очень странно начинаете транзакции. Почему нельзя делать begin?
Если вы имеете ввиду
mysqli_begin_transaction, то версия должна быть PHP 5 >= 5.5.01. Отменяется… потому что $this это как раз ссылка на переменную, которая не объявлена в функции…
чуть-чуть не успел отредактировать комментарий
а сейчас ещё и промахнулся...
чуть-чуть не успел отредактировать комментарий
а сейчас ещё и промахнулся...
У вас в методе transaction() отсутствует код, который, собственно, и выполняет обратное включение автокоммита для случая, когда это необходимо, то есть, когда $need_to_off равна TRUE. Вероятно, просто упустили этот момент, так как в самом тексте статьи этот функционал имеется )
ps. Если, конечно, я все правильно понял )
ps. Если, конечно, я все правильно понял )
А, вообще, я было хотел воспользоваться таким подходом. Даже название придумал 'расширение транзакции'. Только мне не понравилось, что при внутреннем откате откатывается вся транзакция.
Sign up to leave a comment.
Ещё один пример использования замыканий в PHP