라이브러리
[PHP] mysqli::release_savepoint - 현재 트랜잭션의 저장점 세트에서 지정된 저장점을 제거합니다.
mysqli::release_savepoint
MySQLi의 `release_savepoint` 메소드는 현재 트랜잭션 내에서 지정된 저장점을 해제합니다. 저장점은 트랜잭션 내에서 특정 지점으로 돌아가기 위해 사용됩니다.
# 사용법
`release_savepoint` 메소드는 다음 형식으로 사용됩니다.
#hostingforum.kr
php
mysqli->release_savepoint($name)
* `$name` : 저장점 이름
# 예제
#hostingforum.kr
php
// MySQLi 연결 설정
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결이 성공적으로 설정되었는지 확인
if ($mysqli->connect_errno) {
printf("Connect failed: %s
", $mysqli->connect_error);
exit();
}
// 트랜잭션 시작
$mysqli->autocommit(false);
// 저장점 생성
$mysqli->query("SAVEPOINT my_savepoint");
// 데이터 삽입
$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");
// 저장점 해제
$mysqli->release_savepoint("my_savepoint");
// 데이터 삽입
$mysqli->query("INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')");
// 트랜잭션 커밋
$mysqli->commit();
// 연결 종료
$mysqli->close();
# 참고
* 저장점은 트랜잭션 내에서만 사용할 수 있습니다.
* 저장점은 트랜잭션 커밋 또는 롤백과 함께 삭제됩니다.
* 저장점 이름은 중복될 수 없습니다.
추가 예제: 롤백
#hostingforum.kr
php
// MySQLi 연결 설정
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결이 성공적으로 설정되었는지 확인
if ($mysqli->connect_errno) {
printf("Connect failed: %s
", $mysqli->connect_error);
exit();
}
// 트랜잭션 시작
$mysqli->autocommit(false);
// 저장점 생성
$mysqli->query("SAVEPOINT my_savepoint");
// 데이터 삽입
$mysqli->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");
// 데이터 삽입
$mysqli->query("INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')");
// 저장점 해제
$mysqli->release_savepoint("my_savepoint");
// 데이터 삽입
$mysqli->query("INSERT INTO users (name, email) VALUES ('Bob Smith', 'bob@example.com')");
// 트랜잭션 롤백
$mysqli->rollback();
// 연결 종료
$mysqli->close();
이 예제에서는 저장점을 해제한 후 데이터를 삽입한 후 트랜잭션을 롤백합니다. 저장점은 트랜잭션 커밋 또는 롤백과 함께 삭제되므로, 저장점을 해제한 후 롤백하면 이전에 삽입한 데이터는 삭제됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.