Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2原则-数据库-防止同时访问?_Php_Mysql_Ajax_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony2原则-数据库-防止同时访问?

Php Symfony2原则-数据库-防止同时访问?,php,mysql,ajax,symfony,doctrine-orm,Php,Mysql,Ajax,Symfony,Doctrine Orm,我认为我目前的问题很快就能描述出来 我有一个symfony2项目,它访问mysql数据库。 现在多个用户可以同时访问此页面 现在,我的问题是: 用户可以单击按钮将自己标记为条目的参与者。 一个条目最多允许有个参与者 例如: 条目A,最大用户数=3,没有问题 现在C和D为进入A的最后一个空闲位置而斗争。 两者同时单击按钮 现在,C和D都可以加入这个条目,即使3的最大用户数已超出 如果用户单击Ajax按钮,Ajax调用将被发送。 在服务器端,在ajax处理程序中,我的symfony2代码将使用条令访

我认为我目前的问题很快就能描述出来

我有一个symfony2项目,它访问mysql数据库。 现在多个用户可以同时访问此页面

现在,我的问题是: 用户可以单击按钮将自己标记为条目的参与者。 一个条目最多允许有个参与者

例如: 条目A,最大用户数=3,没有问题

现在C和D为进入A的最后一个空闲位置而斗争。 两者同时单击按钮

现在,C和D都可以加入这个条目,即使3的最大用户数已超出

如果用户单击Ajax按钮,Ajax调用将被发送。 在服务器端,在ajax处理程序中,我的symfony2代码将使用条令访问数据库。 它只是从数据库请求条目,并检查是否已经达到最大用户数。 否则,用户将被保存/标记为条目的参与者

但这是不允许的。我想避免两个用户可以同时点击按钮加入条目。 在此状态下,条目中的最大用户数定义为3,且此条目的参与者数量为4。这不是这个函数的目标

你能告诉我怎么修理这个吗? 我需要锁桌子还是别的什么

如果不清楚问题出在哪里,那就直接问吧。 我期待着答案,我很感激每一个提示

最好的
titan

看到您正在使用MySQL,您可以使用


如何编写代码取决于您,但它可以用来缓解并发问题,就像您遇到的问题一样。

查看doc上的事务和并发性