라이브러리

[PHP] mysqli::rollback - 현재 트랜잭션을 롤백합니다.




PHP에서 mysqli::rollback 사용하기

PHP에서 MySQLi 확장을 사용하여 데이터베이스 연동을 할 때, 트랜잭션을 사용하여 데이터베이스의 일관성을 유지할 수 있습니다. 트랜잭션은 여러 쿼리를 하나의 단위로 처리하여, 일부 쿼리가 실패하더라도 이전 상태로 복원할 수 있도록 합니다. MySQLi 확장에서 트랜잭션을 관리하는 메서드는 `mysqli::begin_transaction()`와 `mysqli::rollback()`입니다.

트랜잭션 시작하기


트랜잭션을 시작하기 위해서는 `mysqli::begin_transaction()` 메서드를 사용합니다. 이 메서드는 트랜잭션을 시작하고, 자동 커밋을 비활성화합니다.

#hostingforum.kr
php

$mysqli = new mysqli("localhost", "username", "password", "database");

$mysqli->begin_transaction();



트랜잭션 수행하기


트랜잭션을 수행하기 위해서는 여러 쿼리를 실행합니다. 예를 들어, 다음과 같이 두 개의 INSERT 쿼리를 실행할 수 있습니다.

#hostingforum.kr
php

$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");

$mysqli->query("INSERT INTO orders (user_id, order_date) VALUES (1, '2022-01-01')");



트랜잭션 롤백하기


트랜잭션을 롤백하기 위해서는 `mysqli::rollback()` 메서드를 사용합니다. 이 메서드는 트랜잭션을 취소하고, 이전 상태로 복원합니다.

#hostingforum.kr
php

$mysqli->rollback();



트랜잭션 커밋하기


트랜잭션을 커밋하기 위해서는 `mysqli::commit()` 메서드를 사용합니다. 이 메서드는 트랜잭션을 완료하고, 데이터베이스에 변경 사항을 반영합니다.

#hostingforum.kr
php

$mysqli->commit();



예제


트랜잭션을 사용하여 데이터베이스의 일관성을 유지하는 예제를 살펴보겠습니다.

#hostingforum.kr
php

$mysqli = new mysqli("localhost", "username", "password", "database");

$mysqli->begin_transaction();



// INSERT 쿼리 1

$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");



// INSERT 쿼리 2

$mysqli->query("INSERT INTO orders (user_id, order_date) VALUES (1, '2022-01-01')");



// 트랜잭션 롤백 (예제를 위해 롤백)

$mysqli->rollback();



echo "트랜잭션 롤백 완료";



$mysqli->close();



이 예제에서는 트랜잭션을 시작하고, 두 개의 INSERT 쿼리를 실행합니다. 트랜잭션을 롤백하기 위해 `mysqli::rollback()` 메서드를 사용합니다. 트랜잭션을 롤백하면, 데이터베이스의 이전 상태로 복원됩니다.

참고


* MySQLi 확장의 트랜잭션 기능은 MySQL 5.0.3 이상에서 지원됩니다.
* 트랜잭션을 사용하기 위해서는 데이터베이스의 자동 커밋을 비활성화해야 합니다. `mysqli::begin_transaction()` 메서드를 사용하여 트랜잭션을 시작할 수 있습니다.
* 트랜잭션을 롤백하기 위해서는 `mysqli::rollback()` 메서드를 사용해야 합니다. 트랜잭션을 롤백하면, 데이터베이스의 이전 상태로 복원됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색