
mysqli의 savepoint는 MySQLi의 transaction을 관리할 때 사용됩니다. savepoint를 설정한 후 release_savepoint 함수를 사용하여 롤백을 시도할 수 있습니다.
mysqli::release_savepoint 함수의 사용법은 다음과 같습니다.
- 이 함수는 mysqli 객체의 savepoint를 릴리즈합니다.
- 이 함수의 파라미터는 savepoint 이름입니다.
- 이 함수를 사용할 때, savepoint 이름을 지정해야 합니다.
mysqli::release_savepoint 함수를 사용하여 롤백을 시도할 때, 오류가 발생할 수 있는 경우는 다음과 같습니다.
- savepoint 이름이 지정되지 않은 경우
- savepoint 이름이 지정되었지만, savepoint가 설정되지 않은 경우
- transaction이 커밋된 경우
mysqli::release_savepoint 함수를 사용하여 롤백을 시도할 때, 예외처리를 해야 하는 경우는 다음과 같습니다.
- savepoint 이름이 지정되지 않은 경우 : mysqli::release_savepoint 함수를 호출할 때, savepoint 이름을 지정해야 합니다. 이 경우, mysqli::release_savepoint 함수를 호출할 때, savepoint 이름을 지정하지 않은 경우 예외가 발생합니다.
- savepoint 이름이 지정되었지만, savepoint가 설정되지 않은 경우 : mysqli::release_savepoint 함수를 호출할 때, savepoint 이름을 지정해야 합니다. 이 경우, mysqli::release_savepoint 함수를 호출할 때, savepoint 이름을 지정했지만, savepoint가 설정되지 않은 경우 예외가 발생합니다.
- transaction이 커밋된 경우 : mysqli::release_savepoint 함수를 호출할 때, transaction이 커밋된 경우 예외가 발생합니다.
mysqli::release_savepoint 함수를 사용할 때, 코드를 작성하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$mysqli = new mysqli("호스트 이름", "사용자 이름", "비밀번호", "데이터베이스 이름");
if ($mysqli->connect_error) {
die("연결 실패: " . $mysqli->connect_error);
}
$mysqli->begin_transaction();
$mysqli->query("INSERT INTO 테이블 이름 (컬럼 이름) VALUES ('값')");
$savepoint_name = "savepoint1";
$mysqli->query("SAVEPOINT $savepoint_name");
$mysqli->query("INSERT INTO 테이블 이름 (컬럼 이름) VALUES ('값')");
$mysqli->query("RELEASE SAVEPOINT $savepoint_name");
$mysqli->commit();
$mysqli->close();
위 코드는 mysqli::release_savepoint 함수를 사용하여 롤백을 시도하는 예제입니다. 위 코드를 실행할 때, savepoint 이름을 지정해야 하며, savepoint가 설정되지 않은 경우 예외가 발생합니다. transaction이 커밋된 경우 예외가 발생합니다.
2025-05-31 20:21