緊急ヘルプ: データベース処理の同時実行のための PHP コードの一部
次のように 2 人が本を購入するのを防ぐ方法
テーブル book (id, name, num) num は在庫数量です
の場合例 (1," 高級言語", 1) このような本は、ある瞬間に複数の人がクリックして購入し、そのうちの 1 人が購入します。購入後、在庫が変更されます
方法トランザクションを使用して実装しますか? ? ?
PHP は初めてです。詳しく教えてください!
-----解決策---------- - ----------
トランザクションを使用する必要がありますか? すべてはあなたのコントロール下にあります。
------解決策----------------------
コードはあなたが書きました。自由にコントロールできます。 購入者が「内定」かどうかを判断して購入させ、データベースの在庫を変更することができます。そうでなければ、買わせないでください。
------解決策------------------
この問題はデータベースについて考慮する必要はありません。自動的にロック機能があり、2人が同時にデータテーブルを変更することはありません。数量が0かどうかを判定します。0の場合は購入できなくなりますので、判定結果を返すようにデータベースステートメントを修正します。
------解決策---------
UPDATE table SET num=0 WHERE num>0 AND id=888;
在庫がすでに 0 の場合、彼はそれを変更すると思いますか?
------解決策---------