Получает число строк, затронутых предыдущей операцией MySQL


mysqli_affected_rows

(PHP 5)

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

Описание

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

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

int mysqli_affected_rows ( mysqli $link )

Возвращает число строк, затронутых последним 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() - Извлекает информацию о последнем выполненном запросе