2011-11-14 6 views
0

私は次のことをしたいと思います。PHPとMySQLでレコードロック

  • は、ユーザーが
  • アップデートを持っているクレジット数がクレジットの数は、ユーザが
  • リリースロック
を持っているSELECTユーザーIDのユーザーテーブルの行をロックします

PHPとMYSQLを使用して特定のテーブル行をロックするにはどうすればよいですか?またhttp://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html を参照してください:あなたはInnoDBエンジンを使用している場合は

答えて

2

あなたが起動し、マニュアルに記載されたトランザクションをコミットして行ロックを使用することができますhttp://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html

+0

だからあなたが言っているが、あなたが取引を開始すると、MySQLのトランザクションで参照されるテーブル行は、トランザクションが終了するまでロックされますか? –

+0

マニュアル(特に最初のリンク)を読むだけで、それはすべてここで非常にうまく説明されています – klaustopher

+0

上記の最初のリンクはhttp://dev.mysql.com/doc/refman/5.7/en/innodb-lockingに転送されました。 .html これは、私が以前にSHARE MODEを使用していたロックの種類に関する素晴らしい情報を持っています。排他ロックに変更されました。しかし、ページにはロックを解除する方法の詳細がありません。 単純な答えは、トランザクション内のロックと挿入/更新をラップすることです。ロックは、トランザクションがコミットまたはロールバックされると解放されます。 –