(PHP 5, PHP 7)
mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
Объектно-ориентированный стиль
Процедурный стиль
Возвращает количество строк, измененных запросом INSERT, UPDATE или DELETE.
Эта функция работает только с запросами, обновляющими таблицу. Для получения количества строк для запроса SELECT используйте вместо нее mysqli_stmt_num_rows().
stmt
Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().
Целое число больше нуля показывает количество измененных или найденных строк. Ноль показывает, что не было обновлено ни одной записи для оператора UPDATE/DELETE, ни одна строка не удовлетворила условию WHERE в запросе или что ни один запрос еще не выполнен. -1 показывает, что запрос выполнен с ошибкой. NULL показывает, что функция получила неверный аргумент.
Замечание:
Если количество измененных строк больше, чем максимальное значение для типа int в PHP, то это количество будет возвращено в виде строкового значения.
Пример #1 Объектно-ориентированный стиль
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* проверка соединения */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* создание временной таблицы */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* подготовленное выражение */
if ($stmt = $mysqli->prepare($query)) {
/* привязка переменной к метке */
$code = 'A%';
$stmt->bind_param("s", $code);
/* выполнение выражения */
$stmt->execute();
printf("rows inserted: %d\n", $stmt->affected_rows);
/* закрытие подготовленного выражения */
$stmt->close();
}
/* закрытие соединения */
$mysqli->close();
?>
Пример #2 Процедурный стиль
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* проверка соединения */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* создание временной таблицы */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");
$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";
/* подготовленное выражение */
if ($stmt = mysqli_prepare($link, $query)) {
/* привязка переменной к метке */
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);
/* выполнение выражения */
mysqli_stmt_execute($stmt);
printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));
/* закрытие подготовленного выражения */
mysqli_stmt_close($stmt);
}
/* закрытие соединения */
mysqli_close($link);
?>
Результат выполнения данных примеров:
rows inserted: 17