在MySQL中与多个用户锁定表

时间:2018-09-21 08:33:25

标签: php mysql sql database locking

我建立了一个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);

0 个答案:

没有答案