首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • php中,多个用户同时修改一条记录的问题,如何解决?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-05 14:36:53 楼主
    在某一时间,php程序中,多个用户同时对一条记录进行修改操作,如何处理?
    非常感谢!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-05 15:55:181楼 得分:0
    数据库的事务处理~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-05 17:21:212楼 得分:0
    请详细赐教,我不太懂,谢谢!

    我用的是php+mysql
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-05 21:54:573楼 得分:0
    InnoDB..事务处理..
    或者用写操作锁


    /////////////////////////////////
    LOCK TABLE t WRITE;

    执行update以后

    UNLOCK TABLE t WRITE;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-06 14:25:344楼 得分:0
    同意楼上,在修改数据库时,要将记录锁住,但不是把表(table)锁住,那样修改此表内的其他记录也不能进行了。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-06 14:59:475楼 得分:0
    请教楼上.....

    mysql手册
    LOCK TABLES
        tbl_name [[AS] alias] lock_type
        [, tbl_name [[AS] alias] lock_type] ...

    lock_type:
        READ [LOCAL]
       ¦ [LOW_PRIORITY] WRITE

    UNLOCK TABLES

    请问如何锁住记录?.....没太看明白.....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-09 08:44:506楼 得分:0
    只锁住记录,mysql的命令怎么写?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-09 09:52:107楼 得分:0
    mysql 只能锁表
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-09 14:36:198楼 得分:0
    数据库的事务处理~    怎么做?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net
    • 等级:
    发表于:2008-02-10 07:55:069楼 得分:0
    楼上几位都是悲观锁,
    还有乐观锁可用,就是每行数据增加一个version字段。
    具体的去搜索
    数据库 乐观锁

    对于并发访问同一行数据的频率不是太高的比较适合。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-10 19:07:2410楼 得分:0
    楼上的大牛们都出自己看法了,我的解决方法是这样滴:

    读取记录到本地的时候,用一个隐藏字段记录下你要更新的记录,等到提交到服务器的时候看看这个记录有没有被修改过不就行了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-10 21:03:2911楼 得分:0
    用事物处理对了。
    参照《数据库管理概论》
    如果你和我一样也是新手,就看看那本书的事物处理,你就会明白,什么是封锁协议,怎么用SQL语句那本书说得很清楚。
    commit
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-02-12 09:51:4512楼 得分:0
    If your sever only have one CPU.
    you don't need warry about this.
    beacuse in fact, the CPU just can work one threed at a time.

    it mean , even you seem it will be execute at the same time , but they can only step by step.


    other wise , if you have more than one CPU.
    you can used a flag the possion "on_modify" true/false to do what you want.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved