mysql中多用户的php锁表

hgc7kmma  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(299)

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题