PDOStatement::rowCount — 이전 SQL 문(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)의 영향을 받은 행 수를 반환합니다.
int PDOStatement::rowCount( 무효 )
PDOStatement::rowCount() 해당 PDOStatement 개체에 의해 실행된 마지막 DELETE, INSERT 또는 UPDATE 문의 영향을 받은 행 수를 반환합니다.
관련 PDOStatement에 의해 실행된 마지막 SQL 문이 SELECT 문인 경우 일부 데이터는 이 문에서 반환된 행 수를 반환할 수 있습니다. 그러나 이 접근 방식은 모든 데이터에 대해 작동한다고 보장되지 않으며 휴대용 애플리케이션에 의존해서는 안 됩니다.
행 수를 반환합니다.
PDOStatement::rowCount() DELETE, INSERT 또는 UPDATE 문의 영향을 받은 행 수를 반환합니다.
<?php/* FRUIT 데이터 테이블에서 모든 행 삭제*/$del = $dbh->prepare('DELETE FROM Fruit');$del->execute();/* 삭제된 행 수 반환*/print ("삭제된 행 수 반환:n");$count = $del->rowCount();print("삭제된 $count 행.n");?>
위의 예제 출력은 다음과 같습니다.
삭제된 행 수 반환: 9개 행을 삭제했습니다.
대부분의 데이터베이스에서 PDOStatement::rowCount()는 SELECT 문의 영향을 받은 행 수를 반환할 수 없습니다. 또는 PDO::query()를 사용하여 원래 의도된 SELECT 문과 동일한 조건식을 사용하여 SELECT COUNT(*) 문을 실행한 후 PDOStatement::fetchColumn()을 사용하여 다음 행을 가져옵니다. 이렇게 하면 응용 프로그램이 올바르게 실행될 수 있습니다.
<?php$sql = "SELECT COUNT(*) FROM Fruit WHERE 칼로리 > 100";if ($res = $conn->query($sql)) { /* SELECT 문과 일치하는 행 수 확인*/ if ($ res->fetchColumn() > 0) { /* 실제 SELECT 문을 실행하고 반환된 결과에 대해 작업*/ $sql = "SELECT name FROM Fruit WHERE 칼로리 > 100"; foreach ($conn->query($sql) as $row) { print "Name: " . $row['NAME'] . "n"; } } /* 일치하는 행 없음 - - Execute other */ else { print "쿼리와 일치하는 행이 없습니다." }}$res = null;$conn = null;?>
위 예제의 출력 결과는 다음과 같습니다.
사과바나나오렌지배