
PDOStatement::rowCount는 INSERT, UPDATE, REPLACE 연산을 수행한 경우에만 레코드의 개수를 반환합니다. DELETE 연산의 경우에는 레코드의 개수를 반환하지 않습니다.
레코드의 개수를 얻기 위해서는 PDOStatement::rowCount 대신에 SQL 명령어 내의 LAST_INSERT_ID() 또는 ROW_COUNT() 함수를 사용하거나, PDO::lastInsertId() 메서드를 사용하는 방법이 있습니다.
예를 들어, DELETE 연산을 수행한 후 레코드의 개수를 얻으려면 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$stmt = $pdo->prepare('DELETE FROM 테이블명 WHERE 조건');
$stmt->execute();
$레코드개수 = $stmt->rowCount(); // 이 경우는 사용할 수 없습니다.
$레코드개수 = $pdo->lastInsertId(); // 이 경우는 사용할 수 없습니다.
// 대신에 다음의 방법을 사용합니다.
$stmt = $pdo->prepare('SELECT COUNT(*) FROM 테이블명 WHERE 조건');
$stmt->execute();
$레코드개수 = $stmt->fetchColumn();
또는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$stmt = $pdo->prepare('DELETE FROM 테이블명 WHERE 조건');
$stmt->execute();
$레코드개수 = $pdo->query('SELECT ROW_COUNT()')->fetchColumn();
또는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$stmt = $pdo->prepare('DELETE FROM 테이블명 WHERE 조건');
$stmt->execute();
$레코드개수 = $pdo->query('SELECT LAST_INSERT_ID()')->fetchColumn();
2025-06-22 10:03