라이브러리

[PHP] PDO::commit - 트랜잭션을 커밋합니다.




PDO::commit


PDO::commit은 PHP의 PDO (PHP Data Objects) 확장에서 제공하는 메서드입니다. 이 메서드는 현재 트랜잭션을 커밋(완료)하여 데이터베이스에 변경된 내용을 저장합니다.

# 트랜잭션


트랜잭션은 데이터베이스에서 하나의 작업 단위로 여러 쿼리를 실행하는 것을 의미합니다. 트랜잭션은 다음과 같은 특징을 가지고 있습니다.

* 원자성(Atomicity): 트랜잭션은 하나의 작업 단위로, 성공 또는 실패로만 끝나게 됩니다.
* 일관성(Consistency): 트랜잭션은 데이터베이스의 일관성을 유지해야 합니다.
* 고립성(Isolation): 트랜잭션은 다른 트랜잭션에 의해 중단되지 않아야 합니다.
* 지속성(Durability): 트랜잭션의 결과는 데이터베이스에 영구적으로 저장되어야 합니다.

# PDO::commit 사용 예제


다음은 PDO::commit 메서드를 사용하는 예제입니다.

#hostingforum.kr
php

// PDO 연결 설정

$dsn = 'mysql:host=localhost;dbname=mydb';

$username = 'myuser';

$password = 'mypassword';



try {

    // PDO 연결 생성

    $pdo = new PDO($dsn, $username, $password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);



    // 트랜잭션 시작

    $pdo->beginTransaction();



    // 쿼리 실행

    $stmt = $pdo->prepare('INSERT INTO users (name, email) VALUES (:name, :email)');

    $stmt->execute(['name' => 'John Doe', 'email' => 'john@example.com']);



    // 추가 쿼리 실행

    $stmt = $pdo->prepare('INSERT INTO orders (user_id, order_date) VALUES (:user_id, :order_date)');

    $stmt->execute(['user_id' => 1, 'order_date' => '2022-01-01']);



    // 트랜잭션 커밋

    $pdo->commit();



    echo '트랜잭션 커밋 성공!';

} catch (PDOException $e) {

    // 트랜잭션 롤백

    $pdo->rollBack();

    echo '트랜잭션 롤백: ' . $e->getMessage();

} finally {

    // PDO 연결 닫기

    $pdo = null;

}



이 예제에서는 PDO::commit 메서드를 사용하여 트랜잭션을 커밋합니다. 트랜잭션은 두 개의 쿼리를 실행하고, 첫 번째 쿼리는 사용자 정보를 삽입하고, 두 번째 쿼리는 주문 정보를 삽입합니다. 트랜잭션은 성공적으로 커밋되면 "트랜잭션 커밋 성공!"이 출력됩니다. 만약 에러가 발생하면 트랜잭션은 롤백되고 에러 메시지가 출력됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 338 페이지

검색

게시물 검색