この記事の内容は、MySQL トランザクション処理とは何かを紹介することです。 (コード例)。困っている友人は参考にしていただければ幸いです。
#MySQL トランザクション処理
ステップ:1. トランザクションの開始starttransaction
トランザクションを開始すると、すべての SQL 操作がメモリ内で実行されますが、データベース ディスク上のファイルへの実際のフィードバックはありません。2. ロールバック rollback
ロールバックとは、トランザクションが開始される前の状態に戻すことです。注: ロールバック操作によりトランザクションが自動的に閉じられます。トランザクションを再度実行したい場合は、トランザクションを再度開く必要があります。
3. 送信コミット
取引の基本原則デフォルトでは MySQL が SQL ステートメントの実行を自動的に送信するため、通常の実行はすぐに実行され、有効になります。したがって、トランザクションを開く本質は、以前の自動送信機能をオフにし、代わりにユーザーが手動で (commit ステートメントを使用して) 送信することです。 [関連ビデオチュートリアルの推奨事項:
MySQL チュートリアル トランザクションの手順の概要:1、トランザクションを開く
2、実行が成功した場合は、commit を送信します。
3、SQL ステートメントの実行に失敗した場合は、ロールバックします。
トランザクション処理の例:
最も一般的なトランザクション処理は、お金の借り入れと返済です。次は、Zhang San が Li Si に 1,000 元を返済する例です。 まず、データベース内のそれぞれの金額を確認します。
#以下は、リターン コード オブ マネー トランザクションの処理です:
<?php /** * MySQL实现事务操作 */ echo "<meta charset=utf-8>"; // 1 连接数据库 $link = @mysql_connect('localhost','root','') or die('连接数据库失败'); mysql_select_db('test',$link); mysql_query('set names utf8'); // 2 开启事务 mysql_query("start transaction"); //设置一个变量,用来判断所有sql语句是否成功 $flag = true; // 2.1执行事务中的一组sql语句 // 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; $res = mysql_query($sql); if (!$res) { //若sql语句执行失败,把$falg设置为false $flag = false; } //张三的money-1000 $sql = "update pdo set money=money-1000 where name='张三'"; $res = mysql_query($sql); if (!$res) { //若sql语句执行失败,把$falg设置为false $flag = false; } // 2.2 判断事务是否执行成功 if ($flag) { //所有sql语句执行成功,把sql语句提交 mysql_query('commit'); echo "还钱成功!"; }else{ // 如其中一条执行失败,则回滚到事务开启之前的状态 mysql_query('rollback'); echo "还钱失败!"; }
結果:
以下では、フィールドの 1 つを意図的に書きます。間違っています。トランザクションが正常に処理されたかどうか、データベース内の金額が変化したかどうかを確認してください。
// 李四的money+1000 $sql = "update pdo set mone=money+1000 where name='李四'"; //把moeny字段错写成mone
結果:
結果は、返済が失敗したことと、データベース内のそれぞれの金額です。は変更されていません。これは、特定のステートメントが正常に実行されなかった場合、トランザクションはコミットされず、トランザクションを開始する前のデータを元の状態に復元するためにロールバックされることを示します。これは、トランザクションを使用する役割でもあります。は、
トランザクション内のすべての SQL ステートメントが実行された場合のみです。トランザクションは成功した場合にのみコミットされ、成功しなかった場合はロールバックされます。要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。
以上がMySQL のトランザクション処理とは何ですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。