我建立了一个MYSQL表,该表具有一个带有倒计时的表,因此当一个用户使用资源时,表中的值将减1,最终变为零。我的代码如下。
问题是,当我有多个用户访问该网站并递减该表时,我们到达应该从零开始停顿的位置,但是,它设法递减到零以下并变为负数。 。
我认为通过应用锁定表(下面的代码),系统将停止降至零以下。似乎锁定并不会锁定表。看起来其他用户也锁定了桌子。有人对此有任何想法吗?另外,有人会对我如何进行测试有任何想法吗?
谢谢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);