
mysqli_stmt::reset 메소드는 SQL문이 실행 중에 에러가 발생했을 때, 이전에 실행한 SQL문이 남아있는 것을 초기화 시켜주는 역할을 하는 메소드입니다.
이 메소드를 사용하기 전에 이전에 실행한 SQL문이 남아있는 것을 초기화 시켜야 하는 이유는, MySQL이 SQL문이 실행 중에 에러가 발생했을 때, 이전에 실행한 SQL문이 남아있는 것을 초기화 시켜주지 않으면, 다음에 실행할 SQL문이 이전에 실행한 SQL문과 혼동되어 에러가 발생할 수 있기 때문입니다.
예를 들어, 다음의 SQL문이 실행 중에 에러가 발생했다고 가정해 보겠습니다.
#hostingforum.kr
php
$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
이 SQL문이 실행 중에 에러가 발생했다고 가정해 보겠습니다. 이 경우, MySQL은 이전에 실행한 SQL문이 남아있을 수 있습니다. 이 경우, 다음에 실행할 SQL문이 이전에 실행한 SQL문과 혼동되어 에러가 발생할 수 있습니다.
#hostingforum.kr
php
$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
이 경우, MySQL은 이전에 실행한 SQL문이 남아있을 수 있습니다. 이 경우, 다음에 실행할 SQL문이 이전에 실행한 SQL문과 혼동되어 에러가 발생할 수 있습니다.
mysqli_stmt::reset 메소드를 사용하면, 이전에 실행한 SQL문이 남아있는 것을 초기화 시켜주고, 다음에 실행할 SQL문과 이전에 실행한 SQL문이 혼동되지 않습니다.
#hostingforum.kr
php
$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
$stmt->reset();
이 경우, 이전에 실행한 SQL문이 남아있지 않으므로, 다음에 실행할 SQL문과 이전에 실행한 SQL문이 혼동되지 않습니다.
2025-06-23 13:06