PHP操作MySQLトランザクションサンプルコード
MySQL トランザクションは主に、大規模な操作と複雑さの高いデータを処理するために使用されます。たとえば、人事管理システムでは、個人を削除する場合、その個人の基本情報を削除するとともに、その個人に関連するメールボックスや記事などの情報も削除する必要があります。このようにして、これら データベース操作 ステートメントはビジネスを構成します。
この記事では主に、PHP で MySQL トランザクションを操作する方法を例として詳しく紹介します。必要な方は参考にしてください。 PHP は MySQL トランザクションを操作します。その方法は参考のために皆さんに共有されます。具体的な方法は以下の通りです:
一般的に言えば、トランザクションはACID特性を持つ必要があります。いわゆるACIDとは、Atomic(原子性)、Consistent(一貫性)、Isolated(分離)、Durable(永続性)の4つの単語の頭文字をとって書かれており、その意味を「銀行振込」を例に説明していきます。 :
① アトミック性: トランザクションを構成するステートメントは論理的な単位を形成し、その一部のみを実行することはできません。つまり、トランザクションは分割できない最小単位です。例: 銀行振込処理中に、ある口座から振込金額を差し引いて、同時に別の口座に追加する必要があります。1 つの口座だけを変更するのは不合理です。
② 整合性: トランザクション処理の実行前後でデータベースの整合性が保たれています。つまり、トランザクションはシステム状態を正しく変換する必要があります。例: 銀行振込プロセス中に、振込金額が 1 つの口座から別の口座に送金されるか、両方の口座が変更されず、それ以外の状況は発生しません。③ 分離: あるトランザクションは別のトランザクションに影響を与えません。つまり、どのトランザクションでもトランザクションが不完全な状態にあることを確認することは不可能です。たとえば、銀行送金中、送金トランザクションが送信されるまでは、別の送金トランザクションは待機状態になることしかできません。
④ 耐久性: トランザクション処理の効果を永続的に保存できます。一方、トランザクションは、サーバー、プロセス、通信、メディアの障害など、あらゆる障害に耐えられる必要があります。例: 銀行振込処理中、振込後の口座ステータスを保存する必要があります。
PHP では、mysqli は mysql トランザクションの関連操作を適切にカプセル化しました。次の例:
コードは次のとおりです:
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $mysqli = new mysqli('localhost','root','','DB_Lib2Test'); $mysqli->autocommit(false);//开始事物 $mysqli->query($sql1); $mysqli->query($sql2); if(!$mysqli->errno){ $mysqli->commit(); echo 'ok'; }else{ echo 'err'; $mysqli->rollback(); }
ここでは、トランザクションを実行するために php mysql シリーズの
関数$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $conn = mysql_connect('localhost','root',''); mysql_select_db('DB_Lib2Test'); mysql_query('start transaction'); //mysql_query('SET autocommit=0'); mysql_query($sql1); mysql_query($sql2); if(mysql_errno ()){ mysql_query('rollback'); echo 'err'; }else{ mysql_query('commit'); echo 'ok'; } // mysql_query('SET autocommit=1'); // mysql_query($sql3);
ここで注意してください:
MyISAM: トランザクションをサポートせず、パフォーマンスを向上させるために読み取り専用プログラムに使用されます InnoDB: ACID トランザクション、行レベルのロック、同時実行をサポートします Berkeley DB : 取引をサポートします
以上がPHP操作MySQLトランザクションサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

データベースに接続するときの一般的なエラーとソリューション:ユーザー名またはパスワード(エラー1045)ファイアウォールブロック接続(エラー2003)接続タイムアウト(エラー10060)ソケット接続を使用できません(エラー1042)SSL接続エラー(エラー10055)接続の試みが多すぎると、ホストがブロックされます(エラー1129)データベースは存在しません(エラー1049)
