【问题标题】:record locking with PHP and Mysql使用 PHP 和 Mysql 锁定记录
【发布时间】:2011-11-14 18:40:02
【问题描述】:

我想做以下事情。

  • 为 USER ID 10 锁定用户表中的一行
  • 选择用户拥有的积分数
  • 更新用户的积分数
  • 释放锁

如何使用 PHP 和 MYSQL 锁定特定的表行?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    当您使用 InnoDB 引擎时,您可以按照手册中的说明通过启动和提交事务来使用行锁定:http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html 另见:http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html

    【讨论】:

    • 那么你是说一旦开始事务,事务中引用的mysql表行就被锁定直到事务结束?
    • 看说明书(尤其是第一个链接),里面解释的很好
    • 上面的第一个链接现在转发到:dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 它有很多关于锁类型的信息,我以前使用共享模式,现在已更改为独占锁。但是该页面缺少有关如何释放锁的详细信息。简单的答案是将锁和插入/更新包装在一个事务中。事务提交或回滚时释放锁。
    猜你喜欢
    • 2013-02-07
    • 1970-01-01
    • 2014-10-30
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多