
mysqli::savepoint에 대한 질문에 대한 답변입니다.
트랜잭션을 시작한 후 savepoint를 설정한 후 rollback을 수행하면, rollback이 수행된 이후 트랜잭션은 종료되지 않습니다. 트랜잭션은 rollback이 수행된 이후 다시 시작할 수 있습니다.
rollback이 수행된 이후 다시 savepoint를 설정할 수 있습니다. 이전의 savepoint를 재사용할 수 있습니다.
예를 들어, 다음 코드를 참고하세요.
#hostingforum.kr
php
$mysqli = new mysqli("호스트", "이름", "비밀번호", "데이터베이스");
$mysqli->autocommit(false); // 트랜잭션 시작
$mysqli->query("INSERT INTO 테이블명 VALUES ('값1', '값2')");
$mysqli->query("SAVEPOINT 저장점명"); // savepoint 설정
$mysqli->query("INSERT INTO 테이블명 VALUES ('값3', '값4')");
$mysqli->rollback(); // rollback 수행
$mysqli->query("INSERT INTO 테이블명 VALUES ('값5', '값6')"); // 트랜잭션 다시 시작
$mysqli->query("SAVEPOINT 저장점명2"); // savepoint 다시 설정
위 코드에서, rollback이 수행된 이후 다시 트랜잭션을 시작하고 savepoint를 다시 설정할 수 있습니다. 이전의 savepoint를 재사용할 수 있습니다.
2025-06-26 23:11