永发信息网

在php的事务处理的时候,用不用加锁,事务处理本身有没有加锁?

答案:2  悬赏:40  手机版
解决时间 2021-02-03 08:55
本人是需要做一个虚拟账户的买东西的功能。在买东西的时候是需要判断余额是否足够,然后再操作账户的。那么是否能在判断余额后锁定表单,数据库数据修改后再解除锁呢?
最佳答案
建议用 行锁+事务

select * from table where id=‘92’ for update

这样的话 只有获得本次数据库链接的资源号的 php 程序可以对本条记录进行读取操作,其他程序如果也有读取的话会等待锁定该行的程序执行更新后,才能读取,

另外 貌似对数据库引擎有要求 mysql 的话 innodb 可以这样玩。
全部回答
你的问题是: 1. 很多文件,想多进程处理,以提高效率,缩短总处理时间 2. 这些进程只需要读文件,不需要写 3. 对每个文件,只要有一个进程处理过它就可以了,没有多个进程都必须处理它的需求 你的需求其实是分治,将文件分为多个组(不一定要在文件系统上新建目录),然后分而治之,这种情况不需要用锁. 锁不是用于这种场景的,锁用于下面这种场景: 1. 文件file.txt里面记录了user1的销售额和user2的销售额,user1+user2的销售总额 2. 进程php1负责写入user1的数据,进程php2负责写入user2的数据,两个进程各读出销售总额显示给user1,user2 建议你这样解决: 1. 启动多个php进程(nohup php your_script.php your_dir &) 2. 每个php进程赋予一个序号(假设4个进程,那就0,1,2,3),可以通过对进程自身的pid模运算取余数得到,也可以在启动进程的时候通过命令行传入,随你了 3. 每个进程在处理文件前先对文件名做crc32()运算,模一下进程总数: crc32(file_name) % 4, 取模结果与此进程的序号相等就读取内容并处理,不相等就跳过
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谜面的意思是什么啊?知道的请说下!
春晓幼儿园我想知道这个在什么地方
写一首地震歌曲前奏的 一些串词?然后后面接
读我国部分城市位置图及七月平均气象资料表,
狂的音节是什么?
街头篮球为什么不能扑球
叶非夜小说里的易简和钟情是哪一部小说
ComeAcross酒吧地址在哪,我要去那里办事
滨江电玩城有哪些
三麦酒石首旗舰店这个地址在什么地方,我要处
艺考是理还是文
交宫的意思是什么啊?知道的请说下!
体积和容积有什么联系和区别?不要复制别人的
拉头发和软化头发谁危害大?间隔一周软化两次
谁有wince6.0的explorer.exe文件
推荐资讯
电动车电池怎么辨别真伪
潘家所村怎么去啊,我要去那办事
【does】does和is的区别,越详细越好,什么时候
如图所示,1,2为物镜;3,4为目镜;5,6;为
宜宾路6号,区工商局对面,广西政务服务中心
lol亚索是岩雀的老师吗
从滨文中心站 到 富阳
电影《战国》里孙膑最后问什么要跳下去
一矢双穿的意思是什么啊?知道的请说下!
8090怎么去啊,有知道地址的么
win10对一个不可识别的文件右键不能选择默认
以马内利宾馆怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?