ホームページ  >  記事  >  バックエンド開発  >  PHPのトランザクション処理例を詳しく解説_PHPチュートリアル

PHPのトランザクション処理例を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:23:50929ブラウズ

PHPトランザクション処理例の詳細説明

1. PHPトランザクション処理の概要:

トランザクション: いくつかのイベントのコレクションです

トランザクション処理: すべてのイベントが正常に実行された場合、トランザクションは実行されますが、いずれかのイベントが正常に実行できなかった場合、トランザクションの他のイベントは実行されません。

MySQL バージョンが BDB または InnoDB テーブル タイプをサポートしている限り、MySQL にはトランザクション処理機能があります。その中で最もよく使われるのは InnoDB テーブル タイプです。その後、Oracle による InnoDB 買収などの出来事が MySQL を不幸にするような出来事が起こりましたが、そのようなビジネス上の出来事はテクノロジーとは何の関係もありません。InnoDB テーブル タイプを例に挙げて簡単に説明しましょう。 MySQL のトランザクション処理。

2. PHPトランザクション処理コード:

試してみる{

$pdo=new PDO("mysql:host=localhost;dbname=psp","root","");

$pdo->exec("set names utf8");

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//例外処理モードを設定します

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);//自動送信をオフにする

}catch(PDOException $e){

echo "データベース接続に失敗しました";

退出;

}

試してみる{

$age=10;

$pdo->beginTransaction();//トランザクションを開始します

$affected_rows1=$pdo->exec("update kfry set k_age=k_age+{$age} where k_name='user1'");

$affected_rows2=$pdo->exec("update kfry set k_age=k_age-{$age} where k_name='user2'");//好きなように変更して成功または失敗します

/* if($affected_rows1&&$affected_rows2)

{

$pdo->commit();

echo "操作は成功しました";

}その他{

$pdo->rollback();

} */

if(!$affected_rows1)

throw new PDOException("Add error");

if(!$affected_rows2)

throw new PDOException("エラーを減らす");

echo "操作は成功しました";

$pdo->commit();//この時点で最初の 2 つの更新 SQL ステートメントが正常に実行された場合、トランザクション全体が正常に実行されます

}catch(PDOException $e){

echo "操作が失敗しました:".$e->getMessage();

$pdo->rollback();//実行トランザクション内のステートメントに問題があり、トランザクション全体がキャンセルされます

}

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);

//テストが成功したかどうか

echo "n の演算結果は: n";

$sql="kfry から * を選択";

$result=$pdo->query($sql);

foreach($result as $v)

{

echo $v['k_name']." ".$v['k_age']."n";

}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/834954.html技術記事 PHPトランザクション処理例の詳細説明 1. PHPトランザクション処理の概要: トランザクション: いくつかのイベントの集合です トランザクション処理: すべてのイベントが正常に実行された場合、いずれかのイベントが失敗した場合はトランザクションが実行されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。