ホームページ  >  記事  >  バックエンド開発  >  PHPでMySQLトランザクションのサンプルコードを使用する方法

PHPでMySQLトランザクションのサンプルコードを使用する方法

怪我咯
怪我咯オリジナル
2017-07-23 13:32:582504ブラウズ

MySQL トランザクションは主に、大規模な操作と複雑さの高いデータを処理するために使用されます。例えば、人事管理システムにおいて、個人を削除する場合、その個人の基本情報を削除するとともに、その個人に関連するメールボックスや記事などの情報も削除する必要があります。このようにして、これらのデータベースは、操作ステートメントはトランザクションを構成します。この記事では、PHP データベース プログラミングにおいて非常に重要な実践的な操作スキルである、PHP での MySQL トランザクションの使用法を主に紹介します。必要な方は参考にしてください。具体的な例は次のとおりです。

<?php
//数据库连接
$conn = mysql_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;&#39;);
mysql_select_db(&#39;test&#39;, $conn);
mysql_query("SET NAMES GBK");

/*
支持事务的表必须是InnoDB类型
一段事务中只能出现一次:
mysql_query(&#39;START TRANSACTION&#39;);//开始事务
mysql_query(&#39; ROLLBACK &#39;);//回滚事务
mysql_query(&#39;COMMIT&#39;);//提交事务

如果一段事务中出现多次回滚事务,则在,提交事务时只将第一次回滚前至开始事务后对数据库的所有操作取消,第一次回滚后至提交事务前所有对数据库操作仍将有效,所以一般将回滚语句仅放在提交事务语句前
如果一段事务无提交语句,则从开始事务时以下的所有对数据库操作虽执行(执行方法返回对错),但对数据库无影响,但是在执行下段开始事务语句时,前段事务自动提交
*/
mysql_query(&#39;START TRANSACTION&#39;);
$isBad = 0;

$ins_testTable1 = "INSERT INTO testtable1(NAME,age)VALUES(&#39;first&#39;,23)";
if(!mysql_query($ins_testTable1)){
  $isBad =1;
}
//插入语句字段名有错
$ins_testTable2 = "INSERT INTO testtable1(NAME,ages)VALUES(&#39;second&#39;,&#39;24&#39;)";
if(!mysql_query($ins_testTable2)){
  $isBad =1;
}
if($isBad == 1){
  echo $isBad;
  mysql_query(&#39;ROLLBACK &#39;);
}
mysql_query(&#39;COMMIT&#39;);
mysql_close($conn);
?>

以上がPHPでMySQLトランザクションのサンプルコードを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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