라이브러리
[PHP] PDO::rollBack - 트랜잭션 롤백
PDO::rollBack
PDO::rollBack은 PHP의 PDO 확장 함수 중 하나로, 현재 트랜잭션을 취소하고 이전 상태로 되돌립니다. 트랜잭션은 데이터베이스에서 여러 쿼리를 실행하는 동안 데이터의 일관성을 유지하기 위해 사용됩니다.
# 트랜잭션의 필요성
트랜잭션은 데이터베이스에서 여러 쿼리를 실행하는 동안 데이터의 일관성을 유지하기 위해 사용됩니다. 예를 들어, 주문 시스템에서 고객이 상품을 주문할 때, 시스템은 다음과 같은 쿼리를 실행합니다.
1. 주문 테이블에 주문 정보를 삽입합니다.
2. 재고 테이블에서 주문한 상품의 재고를 감소합니다.
3. 주문 테이블에 주문 상태를 업데이트 합니다.
이러한 쿼리 중 하나가 실패하면, 시스템은 데이터의 일관성을 유지하기 위해 이전 상태로 되돌아가야 합니다. 이때, PDO::rollBack 함수를 사용하여 현재 트랜잭션을 취소하고 이전 상태로 되돌립니다.
# PDO::rollBack 함수의 사용법
PDO::rollBack 함수는 PDO 객체의 메소드로, 다음과 같은 형식으로 사용됩니다.
#hostingforum.kr
php
PDO::rollBack()
# 예제
다음 예제는 PDO::rollBack 함수를 사용하여 트랜잭션을 취소하는 방법을 보여줍니다.
#hostingforum.kr
php
// PDO 객체를 생성합니다.
$db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
// 트랜잭션을 시작합니다.
$db->beginTransaction();
try {
// 주문 테이블에 주문 정보를 삽입합니다.
$stmt = $db->prepare('INSERT INTO orders (customer_id, product_id, order_date) VALUES (:customer_id, :product_id, :order_date)');
$stmt->execute(array(':customer_id' => 1, ':product_id' => 1, ':order_date' => '2022-01-01'));
// 재고 테이블에서 주문한 상품의 재고를 감소합니다.
$stmt = $db->prepare('UPDATE stock SET quantity = quantity - 1 WHERE product_id = :product_id');
$stmt->execute(array(':product_id' => 1));
// 주문 테이블에 주문 상태를 업데이트 합니다.
$stmt = $db->prepare('UPDATE orders SET status = :status WHERE customer_id = :customer_id');
$stmt->execute(array(':status' => 'ordered', ':customer_id' => 1));
// 트랜잭션을 커밋합니다.
$db->commit();
} catch (PDOException $e) {
// 트랜잭션을 취소합니다.
$db->rollBack();
// 에러 메시지를 출력합니다.
echo 'Error: ' . $e->getMessage();
}
이 예제에서는 PDO::rollBack 함수를 사용하여 트랜잭션을 취소합니다. 만약 에러가 발생하면, PDO::rollBack 함수를 호출하여 현재 트랜잭션을 취소하고 이전 상태로 되돌립니다.
# 참고
PDO::rollBack 함수는 현재 트랜잭션을 취소하고 이전 상태로 되돌립니다. 만약 트랜잭션을 커밋하지 않은 경우, PDO::rollBack 함수를 호출하여 트랜잭션을 취소할 수 있습니다. 만약 트랜잭션을 커밋한 경우, PDO::rollBack 함수를 호출하여 트랜잭션을 취소할 수 없습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.