라이브러리
[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 메서드를 사용하여 트랜잭션을 커밋합니다. 트랜잭션은 두 개의 쿼리를 실행하고, 첫 번째 쿼리는 사용자 정보를 삽입하고, 두 번째 쿼리는 주문 정보를 삽입합니다. 트랜잭션은 성공적으로 커밋되면 "트랜잭션 커밋 성공!"이 출력됩니다. 만약 에러가 발생하면 트랜잭션은 롤백되고 에러 메시지가 출력됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.