|
|
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
Привет всем. Есть такая задача, на пример при добавлении нового пользователя в базу произвести еще какие то действия.. В общем я написал элементарный кусочек кода, думаю он будет понятен всем... Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. При добавлении записи пытаюсь сделать ROLLBACK, но запись всеравно добавляется в базу. Это все дело пробовал на денвере. Подскажите в чем дело. С транзакциями дело имею впервые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 11:19:52 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
В консоли все получается, а вот с PHP не знаю что и думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 11:26:14 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
techncodeВ консоли все получается, а вот с PHP не знаю что и думать... SQL('SET AUTOCOMMIT=0'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 12:00:48 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
techncode, запросы из консоли и из PHP делаются к одной и той же базе? Спрашиваю потому что судя по документации разные движки в MySQL по разному реализуют поддержку транзакций - Transactions and Atomic Operations . Соответственно, если у тебя разные БД, то и результаты могут быть разными. Имеет также смысл проверить какой режим/движок для конкректных таблиц установлен. Я бы добавил четвертый параметр - true - к mysql_connect, чтобы заставить открывать новое соединение каждый раз потому что я не уверен каким образом соединение "делится" между скриптами без него. Разумеется надо не забыть закрыть его в конце. И также надо во всех вызовах mysql_* функций использовать переменную $connect. Можешь попробовать SET AUTOCOMMIT=0 перед START TRANSACTION вызвать. Хотя документация утверждает что вызов START TRANSACTION подразумевает отключение AUTOCOMMITа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 12:12:43 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
baziletechncode, запросы из консоли и из PHP делаются к одной и той же базе? Спрашиваю потому что судя по документации разные движки в MySQL по разному реализуют поддержку транзакций - Transactions and Atomic Operations . Соответственно, если у тебя разные БД, то и результаты могут быть разными. Имеет также смысл проверить какой режим/движок для конкректных таблиц установлен. Я бы добавил четвертый параметр - true - к mysql_connect, чтобы заставить открывать новое соединение каждый раз потому что я не уверен каким образом соединение "делится" между скриптами без него. Разумеется надо не забыть закрыть его в конце. И также надо во всех вызовах mysql_* функций использовать переменную $connect. Можешь попробовать SET AUTOCOMMIT=0 перед START TRANSACTION вызвать. Хотя документация утверждает что вызов START TRANSACTION подразумевает отключение AUTOCOMMITа. bazile ты прав, В MyISAM не работает а в InnoDB пошло даже без AUTOCOMMIT=0. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:19:36 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
авторЯ бы добавил четвертый параметр - true - к mysql_connect, чтобы заставить открывать новое соединение каждый раз потому что я не уверен каким образом соединение "делится" между скриптами без него. Разумеется надо не забыть закрыть его в конце. И также надо во всех вызовах mysql_* функций использовать переменную $connect. Если на все приложение используется одно подключение, то все это не нужно. Между тем более 1 соединение использовано быть не может. Закрывать тоже имеет смысл если понимаешь зачем это нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 13:42:52 |
|
||
|
PHP/MySQL(Транзакции)
|
|||
|---|---|---|---|
|
#18+
авторMyISAM Если почитать документации по транзакциям в MySQL... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 14:04:36 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37727077&tid=1465353]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
205ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 557ms |

| 0 / 0 |
