欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

类似新手卡发放如何防止重复

程序员文章站 2024-01-23 22:37:58
...
类似新手卡发放怎么防止重复
我现在有一个需求,一个数据表中已经预先插入了许多新手卡卡密,然后需要本站每个会员自行去领取。但是问题来了,如果在一个很短的时间段有很多人都去领取这个新手卡,怎么设计,才能不重复
------解决方案--------------------
这个问题是关于并发的问题,解决办法是加锁,sql加一个行级锁就行了。以前我也做过类似的,这个必须加锁,可以在数据库里加锁,可以在代码中对那函数加锁, 你可以去查一下类似数据库加锁的资料。
------解决方案--------------------
方法很多,可以参考一下乐观锁悲观锁那些
------解决方案--------------------
我新手,刚刚自己想的,可能在逻辑上会有漏洞..你还是查他们说的名词比较靠谱~
------解决方案--------------------
用一个字段记录卡是否已被使用,然后利用mysql 的update 锁表来解决并发问题。

例如表结构为
id cardno cardpass used

$sqlstr = "update table set used=1 where used=0 and cardno=xxxx";
mysql_query($sqlstr);
$affected_rows = mysql_affected_rows();
if($affected_rows==1){ // 表示修改成功
// 执行使用成功处理
}else{
// 执行卡已被使用处理
}
类似新手卡发放如何防止重复

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频