Перейти к содержимому

affected_rows

В этой статье мы рассмотрим функцию mysqli_affected_rows() в PHP, которая используется для получения количества строк, затронутых предыдущей операцией MySQL. Мы предоставим обзор функции, принцип её работы и примеры использования.

Введение в функцию mysqli_affected_rows()

Функция mysqli_affected_rows() — это встроенная функция PHP, предназначенная для получения количества строк, затронутых предыдущей операцией MySQL. Она обычно используется после выполнения запросов INSERT, UPDATE или DELETE.

Как использовать функцию mysqli_affected_rows()

Использование функции mysqli_affected_rows() очень просто. Вам нужно лишь передать в качестве аргумента действительный объект подключения MySQLi. Вот пример:

Как использовать функцию mysqli_affected_rows()?

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$mysqli->query("UPDATE users SET name='John' WHERE id=1");
echo "Rows updated: " . mysqli_affected_rows($mysqli);

$mysqli->close();
?>

В этом примере мы создаём новый объект MySQLi и выполняем запрос UPDATE для обновления имени пользователя с идентификатором 1 на "John". Затем мы вызываем функцию mysqli_affected_rows() для получения количества строк, затронутых запросом, и выводим результат в консоль.

Важное примечание относительно запросов SELECT

Функция mysqli_affected_rows() не возвращает количество строк для запросов SELECT; в таких случаях она возвращает -1. Чтобы подсчитать количество строк в результате SELECT, используйте mysqli_num_rows() для набора результатов. Кроме того, SQL_CALC_FOUND_ROWS и FOUND_ROWS() устарели в MySQL 8.0.30+ и удалены в 8.0.31+, поэтому их не следует использовать в современных приложениях.

Заключение

Подводя итог, функция mysqli_affected_rows() — это мощный инструмент для получения количества строк, затронутых операциями INSERT, UPDATE или DELETE в PHP. Понимание правильного использования этой функции позволит вам эффективно управлять изменениями данных в ваших скриптах MySQLi.

Практика

Что делает функция mysqli_affected_rows() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.