この記事では主に銀行送金を実装するためのphp+mysqliトランザクション制御を紹介し、トランザクション制御の原理とトランザクションロールバックの使用スキルを分析します。それに
この記事の例では、php+mysqliトランザクション制御を使用して銀行振込を実装する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
トランザクション制御。これは、すべてのステートメントが正常に実行されるまで送信されないことを意味します。それ以外の場合、前のステートメントは正常に実行されたが、後続のステートメントが正常に実行されなかった場合、実行前の状態にロールバックされます。このアプリケーションは、銀行振込の場合で説明されています。 1 つのアカウントから資金が送金される場合、成功したとみなされるには、もう一方のアカウントに資金を送金する必要があります。
コードは次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//1. データベース接続オブジェクトを作成します $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_error){ die($mysqli->connect_error); } $mysqli->query("set names 'GBK'");
$mysqli->自動コミット(false); //最初に autocommit を false に設定します。つまり、自動送信は行われません
$sql1 = "アカウントセットの残高=balance-2、id=1;"; $sql2 = "アカウントセットの残高=残高+2、id=2;"; $res1 =$mysqli->query($sql1) または die($mysqli->error); $res2 =$mysqli->query($sql2) または die($mysqli->error);
if(!$res1 || !$res2){ echo "転送に失敗しました"; $mysqli->rollback();//いずれかの操作が失敗した場合、ロールバックします }その他{ $mysqli->commit();//両方のステートメントが正常に実行された場合、submit echo "転送成功"; } ?> |
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。