PDOStatement::rowCount — Возвращает количество строк, на которые повлиял предыдущий оператор SQL (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
int PDOStatement::rowCount (void)
PDOStatement::rowCount() Возвращает количество строк, на которые повлиял последний оператор DELETE, INSERT или UPDATE, выполненный соответствующим объектом PDOStatement.
Если последний оператор SQL, выполненный соответствующим PDOStatement, был оператором 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 COUNT(*) с тем же условным выражением, что и изначально запланированный оператор SELECT, а затем использовать 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"; } } /* Нет соответствующих строк - - Выполните другое */ else { print "Нет строк, соответствующих запросу." }}$res = null;$conn = null;?>
Выходной результат приведенного выше примера:
яблокобананоранжеваягруша