현재 위치: > 최신 기사 목록> PHP 트랜잭션에 대한 자세한 설명: 원리, ACID 특성 및 사용 방법

PHP 트랜잭션에 대한 자세한 설명: 원리, ACID 특성 및 사용 방법

M66 2025-10-25

PHP의 트랜잭션 개요

트랜잭션은 모두 성공하거나 모두 롤백되는 데이터베이스 작업의 원자 단위입니다. PHP는 데이터베이스 작업의 보안과 일관성을 보장할 수 있는 트랜잭션 작업을 지원합니다.

거래란 무엇입니까?

트랜잭션은 모든 작업이 성공적으로 실행되거나 모두 실패하고 데이터 무결성을 보장하기 위해 롤백되는 완전한 작업 단위입니다.

PHP의 ACID 트랜잭션

PHP는 다음을 포함하여 ACID 트랜잭션을 지원합니다.

  • 원자성: 트랜잭션의 모든 작업은 성공하거나 롤백됩니다.
  • 일관성: 트랜잭션이 완료된 후에도 데이터베이스 상태는 일관성을 유지합니다.
  • 격리: 트랜잭션이 서로 간섭하지 않습니다.
  • 내구성: 트랜잭션이 커밋된 후 작업 결과가 영구적으로 저장됩니다.

거래 시작

mysqli_begin_transaction() 함수를 사용하여 트랜잭션을 시작합니다:

<?php
$conn = new mysqli("host", "username", "password", "database");
$conn-> start_transaction();
?>

트랜잭션 커밋

트랜잭션의 모든 작업이 완료되면 mysqli_commit()을 사용하여 트랜잭션을 커밋합니다.

<?php
$conn-> 저지르다();
?>

롤백 트랜잭션

트랜잭션 작업이 실패하면 mysqli_rollback()을 사용하여 트랜잭션을 롤백할 수 있습니다.

<?php
$conn-> 롤백();
?>

거래 예시

다음 예에서는 PHP에서 트랜잭션을 사용하여 작업하는 방법을 보여줍니다.

<?php
$conn = new mysqli("host", "username", "password", "database");

$conn-> start_transaction();

$sql = "사용자 설정 잔액 업데이트 = 잔액 + 100 WHERE id = 1";
$conn->쿼리($sql);

$sql = "계정 업데이트 SET 잔액 = 잔액 - 100 WHERE id = 2";
$conn->쿼리($sql);

$conn->커밋();
?>

이 예에서는 두 번째 업데이트 문이 실패하면 트랜잭션이 롤백되고 두 작업 모두 데이터베이스에 적용되지 않으므로 데이터 무결성과 일관성이 보장됩니다.