防止同时用户覆盖MYSQL数据

时间:2012-04-30 16:10:44

标签: php mysql

我有一个php / MYSQL网站供学生在宴会上选择桌席。一旦有10个座位,桌子就不再可用了。如何防止两个或更多学生为自己预订座位?同时最多3位客人?看来如果两个学生同时进入并且尝试在同一张桌子上预订座位,数据过多或分配超过10个座位。我需要一种方法来确保第一个尝试在第二个用户能够写出他的选择之前在一个表中预订座位来写入数据库吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

执行类似

的操作
 UPDATE Seating SET AvailableSeats = AvailableSeats - 4 WHERE TableId = 5 AND AvailableSeats = 7;

你从之前的阅读中得到的7。如果此更新失败,那么您知道其他人在此期间已分配席位。

答案 1 :(得分:-1)

我会在调用代码进行预订之前检查可用性是否仍然存在,例如;

if (functionToCheckAvailability(number_of_seats)) {
    bookSeats(number_of_seats);
}