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 в буферизованном режиме), но такое поведение не гарантируется для всех баз данных
и не должно использоваться в переносимых приложениях.
Замечание:
Этот метод всегда возвращает "0" (ноль) с драйвером SQLite,
а с драйвером PostgreSQL только при установке атрибута оператора 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(*)
с тем же текстом запроса. Затем методом
PDOStatement::fetchColumn() вы получите число совпадающих строк.
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Совпадающих записей: " . $count;
?>
Вывод приведённого примера будет похож на: