PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount Возвращает количество строк, затронутых последним SQL-запросом

Описание

public PDOStatement::rowCount(): int

PDOStatement::rowCount() возвращает количество строк, которые были затронуты в ходе выполнения последнего запроса DELETE, INSERT или UPDATE, запущенного соответствующим объектом PDOStatement.

Для операторов, создающих наборы результатов, таких как SELECT, поведение не определено и может быть различным для каждого драйвера. Некоторые базы данных могут возвращать количество строк, созданных этим оператором (например, MySQL в буферизованном режиме), но такое поведение не гарантируется для всех баз данных и не должно использоваться в переносимых приложениях.

Замечание:

Этот метод всегда возвращает "0" (ноль) с драйвером SQLite, а с драйвером PostgreSQL только при установке атрибута оператора PDO::ATTR_CURSOR равным PDO::CURSOR_SCROLL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество строк.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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 без заполнителей