PDOStatement::rowCount
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement::rowCount — Возвращает количество строк, затронутых последним SQL-запросом
Описание
PDOStatement::rowCount() возвращает количество строк,
которые были затронуты в ходе выполнения последнего запроса
DELETE, INSERT или UPDATE, запущенного соответствующим объектом
PDOStatement
.
Если последним запросом, запущенным соответствующим объектом
PDOStatement
, было SQL-выражение SELECT, некоторые СУБД
могут вернуть количество строк в результирующем наборе. Однако, такое поведение
метода не гарантируется для всех баз данных, и это нужно учитывать при
проектировании приложений.
Замечание:
Этот метод всегда возвращает "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;
?>
Результатом выполнения данного примера будет что-то подобное:
Совпадающих записей: 2
Смотрите также
- PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
- PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
- PDO::query() - Выполняет SQL-запрос и возвращает результирующий набор в виде объекта PDOStatement