PHP スクリプトと MySQL の動作に興味がありましたか? スクリプトは基本的に 2 つの SQL クエリです。
最初の SELECT は、ID によって決定される特定の行の列から数値を取得します。
次に、数値が正の場合、2 番目は特定の量を減算して列を更新します。
明らかに、これはトランザクション、ロック、ミューテックスなどを使用する典型的なケースです。
私の質問は次 のとおりです。Web サイトでは、2 人以上のユーザーが同じ行に対して同時にスクリプトを呼び出すことは完全に可能です。トランザクションやロックテーブルを使用しない場合、PHP はこれをどのように処理しますか? これらは 2 つのクエリ/関数呼び出しですが、1 つのスクリプト内にあります。スクリプト全体が対応するユーザーに戻って別のユーザーに対して再度実行するのを待ちますか、または疑似並列処理のためにそれらが異なるクエリであるため、同じスクリプトを呼び出す複数のユーザーで最初のクエリを実行し、次に別のセットに対して2番目のクエリを実行する可能性があります。 .
基本的に私は、トランザクションまたはロックを使用するのに十分な権限がなく、ミューテックスを回避できるかどうかを知りたい場合に何かを行っているため、質問しています(基本的に呼び出し元のための新しいテーブルという言葉についてはわかりません;上記のスクリプトを呼び出す前に、その前に新しいスクリプトを呼び出します。その前に、テーブルのブール列を true にして、元のスクリプトが終了するまで他の人ができないようにし、その後、次のスクリプトが実行できるように false に戻します。 )
編集: 更新の選択について、その権限が上記に含まれているかどうかはわかりません。私の質問に答えてくれる人を見つけるのは難しく、私は彼を探していました...