2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PDOトランザクションについて勉強してみた

Last updated at Posted at 2021-06-21

トランザクションとは

複数のデータベースの更新処理を実行処理がなされるまでは、仮状態で留めておいて
特に問題がなければ、処理をまとめて実行するというもの。
一度のタイミングでまとめて処理するため、処理速度が向上するというメリットがある。
また、トランザクションの処理中は他のトランザクションの処理を受け付けことはできないため、データベースの同時アクセスによるデータの行き違いを防ぐことができる。
つまり、適切なタイミングでトランザクション処理を行うとシステムの高速化&データの整合性を同時に向上させる効果がある。

トランザクションのイメージ

画像は以下のサイトより使わせていただいております。
https://gray-code.com/php/transaction-by-using-pdo/
スクリーンショット 2021-06-20 9.18.28.png
スタート : beginTransaction()
正確に実行できた? YES : commit()
正確に実行できた? NO : rollback()

try {
	// DBへ接続
	$dbh = new PDO("mysql:host=localhost;dbname=test;charset=utf8", 'username', 'password');

	// トランザクション開始
	$dbh->beginTransaction();

	// ここにデータベース更新系の処理が入る

	// コミットで処理
	$dbh->commit();

} catch(PDOException $e) {

	// ロールバックで処理キャンセル
	$dbh->rollBack();

	// エラーメッセージ出力
	echo $e->getMessage();
}

// 接続を閉じる
$dbh = null;
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?