현재 위치: > 최신 기사 목록> pdostatement :: RowCount를 통해 SQL 실행 상태를 감지하는 방법

pdostatement :: RowCount를 통해 SQL 실행 상태를 감지하는 방법

gitbox 2025-05-28

PHP에서 PDO (PHP Data Objects)는 안전하고 유연한 데이터베이스 작업 방법을 제공합니다. pdostatement :: RowCount 함수는 일반적인 방법입니다. SQL 문이 실행 된 후 영향을받는 행의 수를 확인하여 SQL이 성공적으로 실행되는지 여부를 확인할 수 있습니다. 이 방법은 삽입 , 업데이트 또는 삭제 와 같은 데이터 수정을 수행하는 SQL 문에 특히 유용합니다.

이 기사에서는 SQL 실행이 성공했는지 여부를 감지하고 영향을받는 행의 수를 얻기 위해 pdostatement :: rowCount 함수를 사용하는 방법을 설명합니다.

1. pdostatement :: RowCount 함수는 무엇입니까?

pdostatement :: RowCount 함수는 이전 실행 된 SQL 문의 영향을받는 행의 수를 반환합니다. 이 메소드는 삽입 , 업데이트 , 삭제 명령문에 영향을받는 행의 수를 얻는 데 매우 적합합니다.

RowCount가 모든 SQL 문에 적용되는 것은 아닙니다. 예를 들어, SELECT 문의 경우 RowCount가 데이터베이스 드라이버에 따라 올바른 값을 반드시 반환 할 필요는 없습니다.

2. 예제를 사용하십시오

다음으로, 우리는 구체적인 예제와 함께 pdostatement :: RowCount를 사용하는 방법을 보여줄 것입니다.

2.1 데이터베이스 연결

먼저 PDO 연결을 설정해야합니다. MySQL 데이터베이스를 사용하여 작동한다고 가정하면 코드는 다음과 같습니다.

 <?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', 'password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

이 코드에서는 $ pdo 라는 PDO 인스턴스를 생성하고 TestDB 라는 데이터베이스에 연결합니다.

2.2 업데이트 문을 실행하십시오

다음으로, 우리는 업데이트 문을 실행하여 테이블의 데이터를 수정하고 RowCount를 사용하여 영향을받는 행의 수를 얻습니다.

 <?php
$sql = "UPDATE users SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);

$email = '[email protected]';
$id = 1;

$stmt->bindParam(':email', $email);
$stmt->bindParam(':id', $id);

$stmt->execute();

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

2.3 삭제 명령문을 실행하십시오

마찬가지로 삭제 명령문은 RowCount를 사용하여 영향을받는 행의 수를 얻을 수 있습니다.

 <?php
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);

$id = 2;
$stmt->bindParam(':id', $id);

$stmt->execute();

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

2.4 삽입 문을 실행하십시오

삽입 문의 경우 RowCount는 삽입 된 행의 수를 반환합니다. 레코드가 성공적으로 삽입되면 1이 반환됩니다.

 <?php
$sql = "INSERT INTO users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($sql);

$username = 'newuser';
$email = '[email protected]';

$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);

$stmt->execute();

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

3. RowCount를 사용하여 SQL 실행이 성공했는지 여부를 감지하는 방법은 무엇입니까?

pdostatement :: RowCount 의 반환 값은 SQL이 성공적으로 실행되는지 여부를 감지하는 데 도움이 될 수 있습니다. 일반적으로 삽입 , 업데이트 또는 삭제 작업을 수행 할 때 :

  • 반환 값이 0보다 크면 작업이 성공하고 적어도 하나의 데이터 행이 영향을 받음을 의미합니다.

  • 반환 값이 0 인 경우 작업이 데이터에 성공적으로 영향을 미치지 않았 음을 의미합니다 (예 : 업데이트에는 일치 조건이 없거나 0 개의 레코드가 삭제 명령문에 의해 삭제되었습니다).

3.1 SQL 실행이 성공했는지 여부를 감지하십시오

RowCount를 사용하여 SQL 문이 성공적으로 실행되는지 여부를 결정할 수 있습니다. 샘플 코드는 다음과 같습니다.

 <?php
if ($stmt->rowCount() > 0) {
    echo "운영이 성공적입니다,영향을받는 행의 수: " . $stmt->rowCount();
} else {
    echo "작동 실패,영향을받지 않았습니다";
}
?>

4. 주목할만한 것들

  • SELECT 문의 경우 RowCount 의 값이 데이터베이스 드라이버에 따라 반환 된 행 수를 반드시 올바르게 반영 할 필요는 없습니다. 따라서 RowCount 는 주로 삽입 , 업데이트삭제 작업에 사용됩니다.

  • 경우에 따라 RowCount가 0을 반환 할 수 있지만 SQL 문 자체가 실행되지 않는다는 의미는 아닙니다. 행이 수정되거나 삭제되지 않았을 수도 있습니다.

5. 요약

pdostatement :: RowCount 는 매우 유용한 기능입니다. SQL 실행 후 영향을받는 행 수를 얻고 SQL 작업 이이 값을 통해 성공했는지 판단하는 데 도움이 될 수 있습니다. 특히 데이터 수정 작업을 처리 할 때 실행 결과를 적시에 이해하여 프로그램 오류 처리 및 논리적 제어에 도움이됩니다.