[PHP]쓰기 작업을 하는 SQL 쿼리는 boolean 값을 반환

김이홍·2024년 1월 11일

PHP

목록 보기
10/30
          $sql_save = "INSERT INTO member(user_id, user_nick, user_pass) VALUE('$user_id', '$user_nick', '$password')";
          $result = mysqli_query($db, $sql_save);

 if ($result) {
            header("location: register.php?success=회원가입에 성공하셨습니다.");
            exit();
          } 

INSERT, UPDATE, DELETE와 같은 쓰기 작업 쿼리에서는 데이터베이스에 변경을 가하는 작업을 수행하므로, 이들 쿼리의 실행 결과는 행의 수로 표현되지 않습니다. 이런 쿼리에서는 mysqli_query가 true 또는 false를 반환하여 쿼리의 성공 또는 실패 여부만 알려줍니다. 이 경우, 영향 받은 행의 수를 알고 싶다면 mysqli_affected_rows 함수를 사용합니다.

반면에 결과 행 수를 확인해야 하는 경우는 주로 SELECT 쿼리를 사용할 때 입니다. SELECT 쿼리는 데이터베이스로부터 데이터를 조회할 때 사용되며, 조회된 데이터는 결과 집합 형태로 반환됩니다. 이 때 mysqli_num_rows 함수를 사용하여 결과 집합에 있는 행의 수를 확인할 수 있습니다.

$sql = "SELECT * FROM some_table";
$result = mysqli_query($db, $sql);

if ($result) {
    $numRows = mysqli_num_rows($result);
    if ($numRows > 0) {
        // 결과 집합에 행이 있음
        while ($row = mysqli_fetch_assoc($result)) {
            // 각 행 처리
        }
    } else {
        // 결과 집합에 행이 없음
    }
}

0개의 댓글