English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция 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版本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