English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Основы

PHP Уровень продвинутый

PHP & MySQL

PHP Референс Мануал

Пример использования функции mysqli_affected_rows() в PHP

PHP MySQLi справочник

Функция mysqli_affected_rows() в PHP получает количество строк,受到影响 от последней MySQL операции

Определение и использование

mysqli_affected_rows()Функция выполняет следующую задачу: если её вызвать после INSERT, UPDATE, REPLACE или DELETE запроса, то она вернёт количество строк,受到影响 от последней операции.

При использовании этой функции после select语句, она возвращает количество строк.

Синтаксис

mysqli_affected_rows($con)

Параметр

НомерПараметры и описание
1

con(обязателен)

Это объект, представляющий соединение с сервером MySQL.

Возвратное значение

Функция mysqli_affected_rows() в PHP возвращает целое значение, которое указывает на количество строк,受到影响的前一个 (SELECT, INSERT, UPDATE, REPLACE или DELETE) операция.

如果前一个查询有错误,则此函数返回 -1。如果没有受影响的行,或者前面的查询/操作不是上面提到的查询/操作之一,则此函数返回0。

PHP版本

此函数最初是在PHP版本5中引入的,并且可以在所有更高版本中使用。

Онлайн пример

以下示例演示了mysqli_affected_rows()函数的用法(程序风格)

<?php
   //创建连接
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //查询以检索employee表的所有行
   mysqli_query($con, "SELECT * FROM employee");
   //受影响的行
   $rows = mysqli_affected_rows($con);
   print("影响的行数: ". $rows. "\n");
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

-影响的行数: 5

Онлайн пример

在面向对象的风格中,此函数的语法为 $con -> affected_rows,其中 $con 是连接对象-

<?php
   //创建连接
   $con = new mysqli("localhost", "root", "password", "mydb");
   //查询以检索employee表的所有行
   $con -> query("SELECT * FROM employee");
   //受影响的行数
   $rows = $con -> affected_rows;
   print("影响的行数: ". $rows. "\n");
   //Закрытие подключения
   $con -> close();
?>

Результат вывода

-影响的行数: 5

Онлайн пример

当以下情况下,让我们检查此函数的返回值:没有(指定的)查询,并且查询有错误或不影响任何行时:

<?php
   //创建连接
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $rows1 = mysqli_affected_rows($con);
   print("影响的行(之前未指定操作): ". $rows1. "\n");
   //查询以检索employee表的所有行
   mysqli_query($con, "SELECT * FORM employee");
   $rows2 = mysqli_affected_rows($con);
   print("影响的行(查询有错误时): ". $rows2. "\n");
   //查询以检索employee表的所有行
   mysqli_query($con, "SELECT FIRST_NAME FROM employee WHERE AGE <= 19");
   $rows3 = mysqli_affected_rows($con);
   print("影响的行(当查询不执行任何操作时): ". $rows3. "\n");
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

-影响的行(之前未指定操作): 0
-影响的行(查询有错误时): -1
Строки, оказавшие влияние (при выполнении запроса не выполняется ни одно действие): 0

Онлайн пример

Ниже приведены примеры SELECT, UPDATE, INSERT и DELETE запросов, в которых демонстрируются строки, оказавшие влияние (при выполнении запроса не выполняется ни одно действие): 0mysqli_affected_rowsИспользование функции -

<?php
   //Установление подключения
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Запрос для выбора всех строк из таблицы employee
   mysqli_query($con, "SELECT * FROM employee WHERE INCOME > 8000");
   print("Влияет строк SELECT: ".mysqli_affected_rows($con)."\n");
   //Запрос для обновления строк в таблице employee
   mysqli_query($con, "UPDATE employee SET INCOME=INCOME+5000 WHERE FIRST_NAME IN ('Ramya', 'Trupthi', 'Sarmista')");
   print("Влияет строк UPDATE: ".mysqli_affected_rows($con)."\n");
   //Запрос для вставки строки в таблицу employee
   mysqli_query($con, "INSERT INTO employee VALUES ('Archana', 'Mohonthy', 30, 'M', 13000, 106)");
   print("Влияет строк INSERT: ".mysqli_affected_rows($con)."\n");
   //Запрос для удаления строк из таблицы employee
   mysqli_query($con, "DELETE FROM employee WHERE AGE > 25");
   print("Влияет строк DELETE: ".mysqli_affected_rows($con)."\n");
   //Закрытие подключения
   mysqli_close($con);
?>

Результат вывода

Влияет строк SELECT: 4
Влияет строк UPDATE: 3
Влияет строк INSERT: 1
Влияет строк DELETE: 3

PHP MySQLi справочник