Функция mysql_affected_rows() в PHP

Определение и использование

Функция mysql_affected_rows() в PHP возвращает количество строк записей,affected rows,affected by последнего MySQL оператора.

Грамматика

mysql_affected_rows(link_identifier)
Параметр Описание
link_identifier Обязателен. Идентификатор соединения MySQL. Если не указан, используется последний, который был mysql_connect() Открытое соединение. Если не найдено это соединение, функция пытается вызвать mysql_connect() Установление соединения и использование его. Если происходит что-то неожиданное, не найдено соединение или не удалось установить соединение, система выдает сообщение об ошибке уровня E_WARNING.

Описание

Получение последнего с link_identifier Число строк записей,affected rows,affected by связанного INSERT,UPDATE или DELETE запроса.

Возвращает значение

В случае успешного выполнения функции возвращается количествоaffected строк, а в случае неудачи последнего запроса функция возвращает -1.

Если последняя операция - это запрос DELETE без условия (WHERE), все записи в таблице будут удалены, но до версии 4.1.2 функция возвращает 0.

Когда используется запрос UPDATE, MySQL не обновляет столбцы, значения которых не изменились. Это означает, что значение функции mysql_affected_rows() не всегда равно количеству записей, соответствующих условиям запроса, и возвращает количество действительно измененных записей.

Предложение REPLACE сначала удаляет записи с таким же PRIMARY KEY, затем вставляет новую запись. Функция возвращает количество удаленных записей加上 количество вставленных записей.

Пример

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("Не удалось подключиться: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();;
echo "Удаленные записи: " . $rc;
mysql_close($con);
?>

Вывод:

Удаленные записи: 4