mysqli_affected_rows
(PHP 5)
mysqli_affected_rows
(no version information, might be only in CVS)
mysqli->affected_rows -- Получить количество рядов, затронутых предыдущей операцией
Описание
Процедурный стиль:
int
mysqli_affected_rows ( mysqli link )
Объектно-ориентированный стиль (свойство):
class
mysqli {
int affected_rows
}
Функция mysqli_affected_rows() возвращает количество рядов, затронутых последним
INSERT, UPDATE, REPLACE или DELETE запросом, ассоциированным с передаваемым параметром link
.
Если последний запрос вызвал ошибку, функция вернет -1.
Замечание:
Для выражений SELECT функция mysqli_affected_rows() работает подобно
mysqli_num_rows().
Функция mysqli_affected_rows() работает только с запросами, которые модифицируют данные в таблице.
Чтобы получить количество рядов из запроса SELECT, используйте вместо нее функцию
mysqli_num_rows().
Возвращаемые значения
Целое число больше нуля отражает количество затронутых или найденных рядов.
Ноль сообщает, что ни одна запись не была обновлена выражением UPDATE, ни один ряд
не совпадает с выражением WHERE в запросе или о том, что ни один запрос не был выполнен.
-1 сообщает, что запрос вернул ошибку.
Замечание:
Если количество затронутых рядов больше максимального целого числа, количество затронутых рядов
будет возвращено в виде строки.
Примеры
Пример 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(); ?>
|
|
Пример 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 |