PDOStatement ::를 rowCount
PDOStatement :: rowCount의은 - 영향을받는 행의 수에 (PHP 5> = 5.1.0, PECL의 PDO> = 0.1.0) 인 SQL 문을 돌려줍니다
설명
문법
int PDOStatement::rowCount ( void )
PDOStatement :: rowCount의 ()는 DELETE, INSERT를 반환 또는 UPDATE 문은 해당 PDOStatement 객체에 의해 실행 된 행의 수에 영향을 미쳤다.
관련 PDOStatement에 의해 실행 된 SQL 문이 SELECT 문 인 경우, 일부 데이터는이 문에 의해 반환되는 행의 수를 반환 할 수 있습니다. 그러나이 방법은 모든 데이터가 유효 함을 보장 할 수 없습니다, 및 휴대용 애플리케이션을 위해이 방법에 의존해서는 안됩니다.
반환 값
행의 수를 돌려줍니다.
예
행수 삭제 돌려
PDOStatement :: rowCount의 ()는 DELETE, INSERT, UPDATE, 또는 충격 문에 의해 영향을받는 행의 수를 반환합니다.
<?php /* 从 FRUIT 数据表中删除所有行 */ $del = $dbh->prepare('DELETE FROM fruit'); $del->execute(); /* 返回被删除的行数 */ print("Return number of rows that were deleted:\n"); $count = $del->rowCount(); print("Deleted $count rows.\n"); ?>
위 예제의 출력 :
Return number of rows that were deleted: Deleted 9 rows.
SELECT 문에 의해 반환 된 행의 숫자로 계산
대부분의 데이터베이스의 경우, PDOStatement :: rowCount의 ()은 SELECT 문에 의해 영향을받는 행의 수를 반환하지 않습니다. 다른 방법은 행의 수를 반환받을 PDOStatement :: fetchColumn ()를 사용하여 다음 PDO :: 쿼리 ()를 사용하고 동일한 조건의 표현 SELECT COUNT (*) 문에서 SELECT 문을 실행하기위한,하는 것입니다. 그래서 애플리케이션은 적절히 실행할 수있다.
<?php $sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100"; if ($res = $conn->query($sql)) { /* 检查符合 SELECT 语句的行数 */ if ($res->fetchColumn() > 0) { /* 发出一条真正的 SELECT 语句并操作返回的结果 */ $sql = "SELECT name FROM fruit WHERE calories > 100"; foreach ($conn->query($sql) as $row) { print "Name: " . $row['NAME'] . "\n"; } } /* 没有匹配的行 -- 执行其他 */ else { print "No rows matched the query."; } } $res = null; $conn = null; ?>
위 예제의 출력은 다음과 같습니다
apple banana orange pear