
mysqli::autocommit 함수는 MySQLi 연결의 자동 커밋 모드를 설정합니다. 자동 커밋 모드에서는 쿼리 실행 후 자동으로 커밋이 발생합니다. 반면 수동 커밋 모드에서는 쿼리 실행 후 커밋이 발생하지 않으며, 수동으로 커밋을 해야 합니다.
수동 커밋 모드에서 커밋을 하기 위해서는 commit() 함수를 사용해야 합니다. 이 commit() 함수는 모든 쿼리가 반영되는 것이 아니라, 현재 세션의 변경 사항이 반영됩니다. 즉, commit() 함수는 현재 세션의 변경 사항을 디스크에 저장하는 것입니다.
예를 들어, 다음과 같은 쿼리가 실행된 경우:
#hostingforum.kr
php
mysqli->query("INSERT INTO 테이블명 VALUES ('값1', '값2')");
mysqli->query("UPDATE 테이블명 SET 열1 = '값3' WHERE 열2 = '값4'");
수동 커밋 모드에서 커밋을 하기 전에, 다음과 같은 쿼리가 실행된 경우:
#hostingforum.kr
php
mysqli->query("DELETE FROM 테이블명 WHERE 열1 = '값5'");
이 쿼리는 커밋되지 않은 상태로 남아 있습니다. 따라서, commit() 함수를 호출하기 전에 이 쿼리를 다시 실행해야 합니다.
#hostingforum.kr
php
mysqli->query("DELETE FROM 테이블명 WHERE 열1 = '값5'");
mysqli->commit();
이러한 이유로, commit() 함수는 모든 쿼리를 반영하는 것이 아니라, 현재 세션의 변경 사항을 반영하는 함수입니다.
2025-07-05 08:14