현재 위치: > 최신 기사 목록> 인서트 작업에 영향을받는 행 수를 얻고 해당 작업을 수행하는 방법

인서트 작업에 영향을받는 행 수를 얻고 해당 작업을 수행하는 방법

gitbox 2025-05-29

PHP를 사용하여 데이터베이스를 작동 할 때 PDO는 SQL 쿼리를 수행하는 강력한 기능을 제공합니다. 삽입 작업을 수행 할 때는 후속 처리에 영향을받는 행 수를 이해하는 것이 매우 중요합니다. pdostatement :: rowCount () 메소드는 SQL이 실행 된 후 영향을받는 행의 수를 얻는 데 도움이 될 수 있습니다. 이 기사는 PDO를 사용하여 삽입 작업을 수행 한 후 영향을받는 행 수를 얻기 위해 RowCount를 사용하는 방법을 자세히 소개하고 결과를 기반으로 처리합니다.

1. 간단한 삽입 작업

먼저 데이터베이스에 연결되어 삽입 작업을 수행 할 준비가되어 있는지 확인하십시오. 간단한 삽입 작업은 다음과 같습니다.

 <?php
// 데이터베이스 연결 구성
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';

try {
    // 만들다 PDO 예
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 데이터를 삽입 할 준비가되었습니다 SQL 성명
    $sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
    $stmt = $pdo->prepare($sql);

    // 바인딩 매개 변수
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);

    // 샘플 데이터
    $name = 'John Doe';
    $email = '[email protected]';

    // 구현하다 INSERT 작동하다
    $stmt->execute();

    // 영향을받는 행의 수를 얻으십시오
    $affectedRows = $stmt->rowCount();
    
    // 출력의 영향을받는 줄의 수
    echo "삽입 $affectedRows 라인 데이터\n";

} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

2. pdostatement :: rowCount () 설명

위의 코드에서 $ stmt-> execute ()는 삽입 작업을 수행하고 $ stmt-> rowCount () 메소드는 영향을받는 행의 수를 반환하는 데 사용됩니다. 삽입 작업에서 영향을받는 행의 수, 즉 삽입 된 레코드 수입니다. 모든 것이 정상이면 반환 된 값은 1 이어야하므로 데이터 행이 성공적으로 삽입되었음을 나타냅니다.

3. RowCount () 의 결과에 따라 다른 처리가 수행됩니다.

다음으로 RowCount () 가 반환 한 값에 따라 다른 처리를 수행 할 수 있습니다. 일반적 으로이 리턴 값을 사용하여 데이터가 성공적으로 삽입되는지 여부를 결정할 수 있습니다. 예를 들어:

 <?php
if ($affectedRows > 0) {
    echo "데이터 삽입이 성공적으로 삽입됩니다!\n";
} else {
    echo "데이터 삽입에 실패했습니다!\n";
}
?>

4. 코드를 완료하십시오

위의 예와 결합하여 전체 프로세스를 종합하여 삽입 결과에 따라 그에 따라 처리되도록 할 수 있습니다.

 <?php
// 데이터베이스 연결 구성
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';

try {
    // 만들다 PDO 예
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 데이터를 삽입 할 준비가되었습니다 SQL 성명
    $sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
    $stmt = $pdo->prepare($sql);

    // 바인딩 매개 변수
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);

    // 샘플 데이터
    $name = 'John Doe';
    $email = '[email protected]';

    // 구현하다 INSERT 작동하다
    $stmt->execute();

    // 영향을받는 행의 수를 얻으십시오
    $affectedRows = $stmt->rowCount();

    // 영향을받는 행 수에 따라 다른 처리가 수행됩니다.
    if ($affectedRows > 0) {
        echo "데이터 삽입이 성공적으로 삽입됩니다!\n";
    } else {
        echo "데이터 삽입에 실패했습니다!\n";
    }

} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

5. 주목할만한 것들

  • RowCount ()는 모든 데이터베이스 작업에 적용 할 수 없습니다. 예를 들어, 일부 데이터베이스 관리 시스템 (예 : MySQL)은 데이터가 삽입되지 않더라도 삽입 작업 중에 항상 1 인 값을 반환합니다. 이 상황은 데이터베이스의 특정 구현에 따라 다릅니다.

  • 행 수에 영향을 미치지 않는 작업의 경우 RowCount ()가 0을 반환 할 수 있으므로 실제 개발에서는 데이터의 정확한 삽입을 보장하기 위해 SQL을 실행 한 후 반환 값을 확인하는 것이 좋습니다.

결론적으로

pdostatement :: rowCount () 메소드는 삽입 작업을 수행 한 후 매우 유용합니다. 개발자가 데이터가 성공적으로 삽입되었는지 확인하는 데 도움이 될 수 있습니다. RowCount () 의 값에 따라 다른 처리를 수행함으로써 오류 처리 및 데이터 검증을 효과적으로 수행 할 수 있습니다.