2014-01-14 5 views
0

у меня есть этот код, где я делаю три вставки в одной транзакции ::сделки заперта, где он не должен! `

реквизита Transaction :: был«REPEATABLE READ»по умолчанию, но я пробовал все остальные уровни (Глобально, по размаху сессии, и по локальной области)

но все же кода всегда застревают на третьей вставке .. код, так как следовать ::

insert into client(1); 

insert into service (id,clientID) values (1,1); 

insert into relTble (ParentServiceID,ChildServiceID) values (4,1); 

имея тот факт, что каждый из эти вставки происходят внутри клана ss с «предположительно» новым подключением, но с Pconnect (..); который, в конечном счете, будет в том же сеансе. mysql_error говорит мне :: «Тайм-аут блокировки ожидания превышен, попробуйте перезапустить транзакцию». , но когда я попробовал одни и те же запросы на сервере, в транзакции они отлично работали. , пожалуйста, если вы знаете что-нибудь о pconnect, так что через некоторое время он откроет новый сеанс или, или, пожалуйста, скажите мне!

ответ

0

pconnect поддерживает объединение пулов для mysql. Поэтому, если у вас есть несколько соединений с базой данных, нет гарантии, что отдельные запросы будут повторно использовать одно и то же соединение. Это должно быть соблюдено, иначе вы будете иметь три разных транзакции.

+0

и как использовать их для использования того же соединения?! –

Смежные вопросы