ホームページ  >  記事  >  バックエンド開発  >  MySQLのトランザクション処理をPHPで実装する方法を詳しく解説

MySQLのトランザクション処理をPHPで実装する方法を詳しく解説

怪我咯
怪我咯オリジナル
2017-07-12 16:33:512682ブラウズ

MySQL トランザクションは主に、大規模な操作と複雑さの高いデータを処理するために使用されます。たとえば、人事管理システムでは、個人を削除する場合、その個人の基本情報を削除するとともに、その個人に関連するメールボックスや記事などの情報も削除する必要があります。このようにして、これら データベース操作 ステートメントはビジネスを構成します。

MySQL では、Innodb データベース エンジンを使用するデータベースまたはテーブルのみがトランザクションをサポートします。

トランザクション処理を使用すると、データベースの整合性を維持し、SQL ステートメントのバッチがすべて実行されるか、まったく実行されないかを確認できます。

トランザクションは、挿入、更新、削除ステートメントを管理するために使用されます

一般に、トランザクションは、アトミック性 (原子性)、一貫性 (安定性)、分離性 (分離)、持続性 (信頼性) の 4 つの条件 (ACID) を満たす必要があります

1。トランザクションの原子性: 一連のトランザクションは成功するか取り消されます。

2. 安定性: 不正なデータ (外部キー制約など) がある場合、トランザクションは取り消されます。

3. 分離: トランザクションは独立して実行されます。ある取引の結果が他の取引に影響を与える場合、他の取引は撤回されます。トランザクションを 100% 分離するには、速度を犠牲にする必要があります。

4. 信頼性: ソフトウェアまたはハードウェアがクラッシュした後、InnoDB データ テーブル ドライバーはログ ファイルを使用して再構築および変更します。信頼性と高速性は両立しません。innodb_flush_log_at_trx_commit オプションは、トランザクションをログに保存するタイミングを決定します。

php mysqlトランザクション処理実装プログラムのコードは次のとおりです:

コードは次のとおりです:

<?PHP 
$LinkID =mysql_connect(&#39;localhost:3307&#39;,&#39;root&#39;,*******); 
mysql_select_db(&#39;web_his&#39;,$LinkID); 
mysql_query("set names utf8"); 
 
/* 创建事务 */ 
mysql_query(&#39;START TRANSACTION&#39;) or exit(mysql_error()); 
$ssql1="insert into pf_item values(&#39;22&#39;,&#39;我们&#39;,&#39;30&#39;)";  //执行sql 1 
if(!mysql_query($ssql1)){ 
   echo $ssql1.mysql_errno().":".mysql_error()."<br>"; 
   mysql_query(&#39;ROLLBACK&#39;) or exit(mysql_error());//判断当执行失败时回滚 
   exit; 
} 
$ssql1="insert into pf_item values(&#39;21&#39;,&#39;hell&#39;,&#39;10&#39;)";  //执行sql 2 
if(!mysql_query($ssql1)){
  echo $ssql1.mysql_errno().":".mysql_error()."<br>"; 
     mysql_query(&#39;ROLLBACK&#39;) or exit(mysql_error());//判断当执行失败时回滚 
   exit; 
} 
 
mysql_query(&#39;COMMIT&#39;) or exit(mysql_error());//执行事务 
 
mysql_close($LinkID); 
?>

以上がMySQLのトランザクション処理をPHPで実装する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。