MySQLのトランザクションロールバックの書き方を教えてください。
Mysql トランザクション ロールバックを記述する方法は?
現在、問題が発生しています。フォーラム通貨控除プロジェクトでは、フォーラム通貨の支払い時にユーザーが突然インターネットから切断されたり、コンピューターがクラッシュしたり、停電やその他の自然災害が発生した場合、トランザクションは成功しません。は、ユーザーの通貨が差し引かれていますが、サーバーデータベースに消費記録がないなどの状況です)この状況はMysqlトランザクションロールバックによって処理されますか?コードの書き方は?他に方法はありますか?
――――先輩専門家の詳しい解説を楽しみにしています!
-----解決策--------------------------------
commit しないと有効になりません。ロールバックは送信ではなくキャンセルを意味します。
------解決策------------------
これについては何も言うことはありません。SQL を間違って書いてその効果を確認するためのセクションがインターネット上にたくさんあります
。 mysql_query("BEGIN"); //または mysql_query("START TRANSACTION"); $sql = "INSERT INTO ..."; $sql2 = "...に挿入"; $res = mysql_query($sql); $res1 = mysql_query($sql2); if($res && $res1){ mysql_query("コミット"); echo '送信は成功しました。 '; }それ以外{ mysql_query("ROLLBACK"); echo 'データのロールバック。 '; } mysql_query("END"); <div class="clear"></div>