mysql - 多用户同时请求一个PHP文件有可能得到相同的返回值吗?
场景 该文是判断用户消耗的积分或者道具的数据 在数据表中相应 字段存储用户的积分或者道具数量,每次用户请求该文件 通过用户ID 进行查询用户的积分或者道具 之后进行对比 通过之后做其他操作
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("user");
$consume_props_count = 10;
$select = 'SELECT
count
from user
where userid
=123456';$query = mysql_query($select);
$row = mysql_fetch_assoc($query);
if ($row['count'] return false;
}
求大神赐教
PS 不太善于描述问题 望各位见谅.
回复内容:
如题,代码 如下 在多用户同时请求该文件时 会出现两个用户得到的返回值相同吗?
场景 该文是判断用户消耗的积分或者道具的数据 在数据表中相应 字段存储用户的积分或者道具数量,每次用户请求该文件 通过用户ID 进行查询用户的积分或者道具 之后进行对比 通过之后做其他操作
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("user");
$consume_props_count = 10;
$select = 'SELECT count
from user
where userid
=123456';
$query = mysql_query($select);
$row = mysql_fetch_assoc($query);
if ($row['count']
return false;
}
求大神赐教
PS 不太善于描述问题 望各位见谅.
假设其他程序不会修改代码中的变量或mysql中的数据,那么一定会返回相同值。
1、consume_props_count变量每次都是10且不做修改;
2、查询语句一样
所以一个用户请求多次或多个用户同时请求其结果都是一样的。
update
-------
还是无法从代码中看出什么。
你的返回值是false
或不返回,那么肯定会有一部分用户得到的是false
。
猜测你可能是想问多个请求同时到达会不会产生共享内存从而相互影响,PHP请求之间的资源是隔离开的,不同请求之间不能共享内存。请求间共享数据的方法就是从第三方读写数据(如MYSQL)。
没有数据修改的话肯定一样。
用户个人的数据是私有的,即便有修改也是用户自己这边引起的,有时序性,所以一般不会有问题,真多你的问题,建议你可以了解一下文件锁和mysql的事务隔离级别的知识。