我构建了一个mysql表,它有一个带有倒计时的表,这样当一个用户获取一个资源时,表中的值将递减1,最终变为零。我的代码在下面。
问题是,当我有多个用户访问该站点并递减表时,我们得到了一个点,它应该停止在零,但是,它设法递减到零以下并进入负数。
我认为通过锁定表(下面的代码),系统将停止下降到零以下。似乎锁不上table。似乎其他用户也在表上有一个锁。有人对此有什么想法吗?还有,有人知道我该如何测试这个吗?
谢谢p
//Lock Tables
$query2 = "LOCK TABLES $_GET[ModuleCode]_students WRITE";
sql_function($query2);
$query = "insert into $_GET[ModuleCode]_students (Qualification,StudentNo,StudentSurname,StudentForename,StudentEmail,Grp,regesterTime) values ('$_POST[Qualification]','$_POST[StudentNo]','$_POST[StudentSurname]','$_POST[StudentForename]','$_POST[StudentEMail]','$_POST[mygroup]',NOW())";
sql_function($query);
//check the number of places left with the lock on so it won't allow input into the table if at zero
calc_placesleft();
write_results($_POST[StudentNo],$_GET[ModuleCode],$_POST[mygroup]);
Release lock on table $_GET[ModuleCode]
$query3 = "UNLOCK TABLES";
sql_function($query3);
暂无答案!
目前还没有任何答案,快来回答吧!