データベース トランザクションを使用した後も、負のレコードが並行状態で表示されます。
たとえば、ある賞品を瞬殺したい場合、賞品の数は 1 で、5 人が同時にリクエストした場合、1 つのリクエストが成功した後、データベースの値を 0 に変更してから、他のリクエストを実行します。残りの 4 つのリクエストが完了すると、製品の送信が完了したことを示すプロンプトが表示されます。すべての操作が完了すると、次のようになります。トランザクションを送信して同時リクエストを実行すると、賞品の数が負の数に変わります。賞品の数が更新された後にトランザクションが送信された場合、その他のトランザクションを開始し、同時に操作をリクエストすると、賞品の数は変化しません。ただし、これが行われ、他の操作が完了した後に失敗した場合は、以前に更新されたものを手動でロールバックする必要があります。賞品の数について、原因は何でしょうか。トランザクション処理のロジックが長すぎるためでしょうか? その場合、トランザクションは長いビジネス ロジックにどのように使用されるべきですか?
MySQL はデフォルトでトランザクションを自動的にコミットします。つまり、すべての SQL 命令は COMMIT である必要があります。この動作を積極的に無効にするには
トランザクション処理中、関連する SQL 命令はコピー内で分離されるため、比較的独立しています
しかし、これは他の接続がデータ操作を実行できないという意味ではありません
したがって、トランザクションは完全性を保証することしかできませんこのリンクの操作を制御できず、他の接続の操作を制御することはできません
<?php mysql_query('START TRANSACTION') if(奖品数量 <=0){ 提交事务 return ; } 奖品数量-1; * 其它后续操作 xxx xxxx ....... 提交事务 mysql_query('COMMIT')?>
実際にはトランザクションは必要ありません。それでも同じ
事务开始计数器减一如果计数器为负:回滚,退出其他操作提交
トランザクション処理中、関連する SQL 命令はコピー内に分離されるため、比較的独立しています
しかし、これは他の接続がデータ操作を実行できないという意味ではありません
したがって、トランザクションは保証することしかできませんこのリンクの操作の完全性を監視し、他の接続の操作を制御することはできません
计数器减一如果计数器为负:计数器加一,退出其他操作
実際には、トランザクションは必要ありません。それでも同じです
事务开始计数器减一如果计数器为负:回滚,退出其他操作提交
すみません、ここのカウンターは、の賞品の数を指しますか?データベースは?
そうであれば
私もそう判断しました
トランザクションを開きます
数量がマイナスの場合はロールバックして終了します それ以外の場合は数量 -1
その他の操作
送信
同時リクエストをシミュレートするには、curl_multi_initを使用します。まだ数量が 1 つ残っています リクエストを 5 回シミュレートすると、数値は -4 になります
はい、しかし、それがあなたがそれを説明した方法です
if(賞品の数 トランザクションを送信します
* その他のフォローアップ操作
賞品の数 -1;
あなたは彼の合法性を判断したいとは言っていません
はい、それがあなたがそれを説明した方法です
if (賞品の数 トランザクションを送信
return < tbl_name から賞品を選択
if 賞品 endif
賞品の数 - 1 缶のみ実際に発生してから決定してください
update tbl_name set award=prize-1
select award from tbl_name
if award ROOLBACK
endif
モデレーターの辛抱強い回答に感謝します。同時控除がマイナスになることはなくなりました。最初に判断してから削減し、最初に削減してから効果を判断する必要があるといつも思っていました。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
