PDOStatement :: rowCount
PDOStatement :: rowCount - Returns the SQL statement that is on a number of rows affected (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
Explanation
grammar
int PDOStatement::rowCount ( void )
PDOStatement :: rowCount () returns a DELETE, INSERT, or UPDATE statement affected the number of lines executed by the corresponding PDOStatement object.
If the SQL statement executed by an associated PDOStatement was a SELECT statement, some data may return the number of rows returned by this statement. However, this method can not guarantee that all data is valid, and for portable applications should not rely on this method.
return value
Returns the number of rows.
Examples
Returns the number of rows deleted
PDOStatement :: rowCount () returns the number of rows affected by DELETE, INSERT, UPDATE, or impact statement.
<?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"); ?>
The above example output:
Return number of rows that were deleted: Deleted 9 rows.
Calculated by the number of rows returned by a SELECT statement
For most databases, PDOStatement :: rowCount () does not return the number of rows affected by a SELECT statement. An alternative method is to use PDO :: query () and intended to issue a SELECT statement in the same condition expression SELECT COUNT (*) statement, and then use PDOStatement :: fetchColumn () to get the number of rows returned. So that the application can execute properly.
<?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; ?>
The above example output is:
apple banana orange pear