У меня есть несколько пользователей, пытающихся получить доступ к таблице, используя PHP-скрипт одновременно.
Вот некоторый код:
$result = mysql_query("SELECT ID FROM usersPark
WHERE isSharing = '1' and email != '$email' and isBooked != 1")
Теперь, если $ result не пуст, мне нужно установить isBooked = 1 следующим образом:
UPDATE `usersPark` SET `isBooked` = 1,` WHERE ID = ...
Я думаю, мне нужно получить блокировку в самом начале скрипта, перед первым запросом. Как я могу получить блокировку?
Если ваша таблица использует InnoDB, то это поддерживает два типа блокировочных чтений, которые вы можете использовать для этого.
Вы, вероятно, захотите использовать SELECT ... FOR UPDATE
— или что-то подобное. Я мог бы написать об этом здесь, но документация MySQL довольно хороша в этом, так что проверьте это Вот.
Других решений пока нет …