mysqli::$affected_rows
mysqli_affected_rows
(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
Смотрите также
- mysqli_num_rows() - Получает число рядов в результирующей выборке
- mysqli_info() - Извлекает информацию о последнем выполненном запросе