
PDO::rollBack() 메서드는 트랜잭션을 롤백하여 이전의 변경 사항을 취소하고 데이터베이스의 일관성을 유지합니다.
트랜잭션을 롤백하는 과정은 다음과 같습니다.
1. 트랜잭션을 시작합니다. ($pdo->beginTransaction();)
2. 트랜잭션 내에서 데이터베이스에 변경 사항을 적용합니다. (INSERT, UPDATE, DELETE 등)
3. 변경 사항이 발생한 후에 예외가 발생하거나 에러가 발생할 경우, PDO::rollBack() 메서드를 호출하여 트랜잭션을 롤백합니다.
4. 트랜잭션을 롤백하면 데이터베이스의 일관성을 유지하고 이전의 변경 사항이 취소됩니다.
예를 들어, 다음 코드는 PDO::rollBack() 메서드를 사용하여 트랜잭션을 롤백하는 방법을 보여줍니다.
#hostingforum.kr
php
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
try {
// 트랜잭션의 변경 사항
$pdo->exec('INSERT INTO mytable (name, age) VALUES ("John", 25)');
$pdo->exec('INSERT INTO mytable (name, age) VALUES ("Jane", 30)');
// 에러가 발생하거나 예외가 발생할 경우
throw new Exception('트랜잭션 롤백 테스트');
} catch (PDOException $e) {
// 트랜잭션 롤백
$pdo->rollBack();
echo 'Error: ' . $e->getMessage();
} finally {
// 트랜잭션 커밋
// $pdo->commit();
}
위의 코드에서 PDO::rollBack() 메서드를 호출하여 트랜잭션을 롤백하면, 데이터베이스의 일관성이 유지되고 이전의 변경 사항이 취소됩니다.
2025-06-29 03:55