라이브러리
[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()` 메서드를 사용해야 합니다. 트랜잭션을 롤백하면, 데이터베이스의 이전 상태로 복원됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.