(PHP 5, PHP 7)
mysqli::$affected_rows -- mysqli_affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
Объектно-ориентированный стиль
Процедурный стиль
Возвращает число строк, затронутых последним 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