Forum und email

mysqli_affected_rows

mysqli->affected_rows

(PHP 5)

mysqli->affected_rows — Получить количество рядов, затронутых предыдущей операцией

Описание

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

int mysqli_affected_rows ( mysqli $link )

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

mysqli
int$affected_rows;

Функция mysqli_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, REPLACE или DELETE запросом, ассоциированным с передаваемым параметром link . Если последний запрос вызвал ошибку, функция вернет -1.

Note: Для выражений SELECT функция mysqli_affected_rows() работает подобно mysqli_num_rows().

Функция mysqli_affected_rows() работает только с запросами, которые модифицируют данные в таблице. Чтобы получить количество рядов из запроса SELECT, используйте вместо нее функцию mysqli_num_rows().

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

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

Note: Если количество затронутых рядов больше максимального целого числа, количество затронутых рядов будет возвращено в виде строки.

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

mysqli_num_rows() и mysqli_info().

Примеры

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

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

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

/* Вставки строк */
$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");

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

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

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

$result->close();

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

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

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

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

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

/* Вставка строк */
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");

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

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

/* Выборка всех строк */
$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