PDO beginTransaction в двух отдельных скриптах - PullRequest
0 голосов
/ 22 декабря 2011

Что происходит, когда два разных клиента вызывают одну и ту же функцию php с функцией pdo :: beginTransaction?

Сбой одного из них или два экземпляра php могут выполнить содержимое блока фиксации beginTranscation?

IE:

try{
db::beginTransaction();
//queries here
//can two separate php instances go in here at the same time?
db:commit();
}
catch(error e)
{
 db::rollback();
}

1 Ответ

2 голосов
/ 22 декабря 2011

Каждый экземпляр скрипта PHP (точнее, каждый экземпляр PDO) открывает соединение с базой данных (с точки зрения БД, новый сеанс). Бэкэнд-базы данных (за исключением нескольких простых файловых файлов) поддерживают несколько соединений, но в итоге блокируют свои отдельные ресурсы по-разному. В зависимости от запросов, выполненных в вашей транзакции, вы можете оказаться в тупике. Тем не менее, наличие нескольких подключений к базе данных, открытых одновременно, не обязательно ставит вас в тупиковый сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...