mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7)

mysqli::$affected_rows -- mysqli_affected_rowsПолучает число строк, затронутых предыдущей операцией MySQL

Описание

Объектно-ориентированный стиль

Процедурный стиль

mysqli_affected_rows ( mysqli $link ) : int

Возвращает число строк, затронутых последним запросом INSERT, UPDATE, REPLACE или DELETE.

Для запросов вида SELECT mysqli_affected_rows() работает как mysqli_num_rows().

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

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

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

Целое число, большее нуля, означает количество затронутых или полученных строк. Ноль означает, что запросом вида UPDATE не обновлено ни одной записи, или что ни одна строка не соответствует условию WHERE в запросе, или что запрос еще не был выполнен. Значение -1 указывает на то, что запрос вернул ошибку.

Замечание:

Если число затронутых строк больше чем максимальное значение int ( PHP_INT_MAX ), то число затронутых строк будет возвращено в строковом виде (string).

Примеры

Пример #1 Пример использования $mysqli->affected_rows

Объектно-ориентированный стиль

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    
printf("Подключение не удалось: %s\n"mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n"$mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n"$mysqli->affected_rows);

/* Удаление строк (Delete) */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n"$mysqli->affected_rows);

/* Выбор всех строк (Select) */
$result $mysqli->query("SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n"$mysqli->affected_rows);

$result->close();

/* Удаление таблицы Language */
$mysqli->query("DROP TABLE Language");

/* Закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

if (!
$link) {
    
printf("Не могу подключиться к localhost. Ошибка: %s\n"mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
mysqli_query($link"CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n"mysqli_affected_rows($link));

mysqli_query($link"ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
mysqli_query($link"UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n"mysqli_affected_rows($link));

/* Удаление строк (Delete) */
mysqli_query($link"DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n"mysqli_affected_rows($link));

/* Выбор всех строк (Select) */
$result mysqli_query($link"SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n"mysqli_affected_rows($link));

mysqli_free_result($result);

/* Удаление таблицы Language */
mysqli_query($link"DROP TABLE Language");

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Затронутые строки (INSERT): 984
Затронутые строки (UPDATE): 168
Затронутые строки (DELETE): 815
Затронутые строки (SELECT): 169

Смотрите также

  • mysqli_num_rows() - Получает число рядов в результирующей выборке
  • mysqli_info() - Извлекает информацию о последнем выполненном запросе