
MySQL의 mysql_affected_rows 함수는 INSERT, UPDATE, DELETE 문을 실행한 후에 영향을 받은 행의 수를 반환합니다. 하지만 INSERT 문을 실행한 후에 mysql_affected_rows 함수를 호출하면 affected_rows가 0이 나올 수 있습니다.
이유는 MySQL의 트랜잭션 기능 때문입니다. MySQL은 INSERT 문을 실행한 후에 자동으로 COMMIT을 수행하지 않습니다. 따라서 mysql_affected_rows 함수를 호출한 후에 COMMIT을 수행하지 않으면 affected_rows가 0이 나올 수 있습니다.
해결 방법은 INSERT 문을 실행한 후에 COMMIT을 수행하는 것입니다. 예를 들어 다음과 같이 INSERT 문을 실행하고 COMMIT을 수행할 수 있습니다.
#hostingforum.kr
sql
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES ('값1', '값2', ...);
COMMIT;
또는 다음과 같이 INSERT 문을 실행한 후에 mysql_affected_rows 함수를 호출하고 COMMIT을 수행할 수 있습니다.
#hostingforum.kr
sql
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES ('값1', '값2', ...);
mysql_affected_rows();
COMMIT;
이러한 방법으로 INSERT 문을 실행한 후에 mysql_affected_rows 함수를 호출하면 affected_rows가 반환되는 것을 확인할 수 있습니다.
2025-08-07 19:50