트랜잭션은 데이터베이스 관리의 중요한 측면으로, 데이터베이스 작업 순서를 보장합니다. 오류가 발생하면 완전히 실행되거나 롤백됩니다. MySQL의 PHP용 mysqli 확장을 사용하면 트랜잭션은 두 가지 필수 기능을 통해 처리됩니다.
$mysqli->autocommit(FALSE); // Start transaction $mysqli->commit(); // End transaction
트랜잭션을 시작하려면 $mysqli->autocommit(FALSE)을 호출해야 합니다. );. 이렇게 하면 자동 커밋이 비활성화되어 동일한 트랜잭션 내에서 여러 쿼리를 실행할 수 있습니다.
트랜잭션이 시작되면 그 안에서 원하는 만큼의 쿼리를 실행할 수 있습니다. 그러나 이러한 쿼리는 트랜잭션을 명시적으로 커밋할 때까지 데이터베이스에 영구적으로 적용되지 않습니다.
$mysqli->commit(); 함수는 트랜잭션을 마무리하고 해당 트랜잭션 중에 이루어진 모든 변경 사항을 데이터베이스에 적용합니다. 오류가 없으면 거래가 성공하고 변경 사항이 영구적으로 적용됩니다.
거래 중에 오류가 발생하거나 변경 사항을 되돌려야 하는 경우 , mysqli->rollback();을 호출할 수 있습니다. mysqli->commit(); 대신. 그러면 해당 트랜잭션 내에서 변경된 내용이 모두 삭제되고 데이터베이스는 이전 상태로 돌아갑니다.
다음 코드 조각은 mysqli에서 트랜잭션을 시작하고 종료하는 방법을 보여줍니다.
$mysqli->autocommit(FALSE); $mysqli->query("UPDATE `table` SET `col` = 2"); $mysqli->query("UPDATE `table1` SET `col1` = 3"); $mysqli->commit(); // End transaction
이 예에서는 두 개의 쿼리 문이 동일한 트랜잭션 내에서 실행됩니다. 그러나 트랜잭션이 커밋될 때까지 데이터베이스에 변경 사항이 적용되지 않습니다. $mysqli->commit(); 이전에 오류가 발생한 경우; 호출되면 $mysqli->rollback();을 호출하여 변경 사항을 롤백할 수 있습니다.
위 내용은 PHP의 mysqli 확장을 사용하여 MySQL 데이터베이스 트랜잭션을 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!