データの矛盾を防ぐために、並行性に対処するためのPHP、MySQLデータベース

分析:

コンカレントプログラミング言語レベルに応じて上記のためのよりよい解決策はありませんが、そのような自体は、キューとしては、MySQLベースのInnoDBエンジンを達成するために、ロック行またはRedisのに依存してデータベースなどの他のデザインの手段によって達成することができるように、PHP言語自体は、シングルスレッドであります達成するためのストレージ。ここでは、実装ベースのMySQLの行ロックを説明します。

 

注意:

唯一のInnoDBのベースエンジンがサポートされているデータベースのトランザクション行ロックは、実際の運用では、実行が成功しなかった場合、リストエンジンが正しいことを確認してください。また、行ロックは、トランザクションのコミットに提出されたデータに依存しています。

 

プログラムコード:

CONN $ = にmysql_connect( '127.0.0.1'、 'ルート'、 'ルート')またはダイmysql_errorを()); // リンクのMySQL 

mysql_select_db$ CONN、 '学生'); // データベースを選択

するmysql_query$ CONNを、 )「BEGIN」; // トランザクションを開く

//このステートメントを実行し、トランザクション内のユーザ名=「ジョン・ドウ」の行がに提出された後、別のプロセスによってアクセスすることができます
$ RES = するmysql_query$のCONN、「SELECT * FROMユーザ名= "ジョン・ドウ" UPDATE FOR」ユーザ;)

$行は = は、mysql_fetch_array$ RESを)。// 結果セットを取得

するmysql_queryをCONN $、「SETは、ユーザー名、ユーザー名= 'ジョー・スミス' ')= 'ジョン・ドウ'を更新; // 再更新データ

するmysql_query$ CONNを、' COMMIT「); //は、トランザクションのコミット

mysql_free_result$をRES にmysql_closeCONN $)。

マイクロチャネル公共番号から:プログラミング協会

高度なプログラマ毎日本は、注意してください!

おすすめ

転載: www.cnblogs.com/ai10999/p/11449479.html