PDOStatement::rowCount
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::rowCount —
Возвращает количество строк, которое затронул последний SQL-запрос
Описание
public PDOStatement::rowCount():
int
Для запросов наподобие SELECT
, которые создают наборы результатов,
поведение не определено и индивидуально для каждого драйвера.
Отдельные базы данных, например MySQL в режиме буферизации результатов, иногда возвращают количество строк,
которое вернул этот запрос, но такое поведение не гарантируется для каждой базы данных
и на него лучше не полагаться в переносимых приложениях.
Замечание:
При взаимодействии с БД через драйвер PostgreSQL метод возвращает числовую строку "0",
если в запросе для атрибута PDO::ATTR_CURSOR
установили значение PDO::CURSOR_SCROLL
.
Список параметров
Сигнатура функции не содержит параметров.
Возвращаемые значения
Метод возвращает количество строк.
Примеры
Пример #1 Пример получения количества удалённых строк
Метод PDOStatement::rowCount() возвращает количество строк,
изменённых выражениями DELETE, INSERT или UPDATE.
<?php
/* Удалим все строки из таблицы FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Выведем число удалённых строк */
print "Количество удалённых строк:\n";
$count = $del->rowCount();
print "Удалено $count строк.\n";
?>
Вывод приведённого примера будет похож на:
Количество удалённых строк:
Удалено 9 строк.
Пример #2
Пример подсчёта строк в результатах запроса SELECT
Для большей части СУБД метод PDOStatement::rowCount()
не возвращает количество строк в результатах SELECT-запроса. Вместо этого метода
вызывают метод PDO::query() со строкой запроса SELECT COUNT(*)
и теми же предикатами, которые планировали указать в главном SELECT-запросе, а затем вызывают метод
PDOStatement::fetchColumn(), чтобы получить количество строк, которое соответствует запросу.
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Количество записей, которые соответствуют запросу: " . $count;
?>
Вывод приведённого примера будет похож на:
Количество записей, которые соответствуют запросу: 2