Fonction PHP mysqli_affected_rows ()

Définition et utilisation

le mysqli_affected_rows() La fonction renvoie le nombre de lignes affectées par l'opération précédente, si elle est appelée après la requête INSERT, UPDATE, REPLACE ou DELETE.

Lorsqu'elle est utilisée après des instructions select, cette fonction renvoie le nombre de lignes.

Syntaxe

mysqli_affected_rows($con)

Paramètres

Sr.Non Paramètre et description
1

con(Mandatory)

Il s'agit d'un objet représentant une connexion à MySQL Server.

Valeurs de retour

La fonction PHP mysqli_affected_rows () renvoie une valeur entière indiquant le nombre de lignes affectées par l'opération précédente (SELECT, INSERT, UPDATE, REPLACE ou DELETE).

Si la requête précédente contient une erreur, cette fonction renvoie -1. S'il n'y a pas de lignes affectées ou si la requête / opération précédente n'est pas l'une des précédentes, cette fonction renvoie0.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction mysqli_affected_rows () (dans le style procédural) -

<?php
   //Creating a connection
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   //Query to retrieve all the rows of employee table
   mysqli_query($con, "SELECT * FROM employee");

   //Effected rows
   $rows = mysqli_affected_rows($con);
   print("Number of affected rows: ".$rows);

   //Closing the connection
   mysqli_close($con);
?>

Cela produira le résultat suivant -

Number of affected rows: 5

Exemple

Dans le style orienté objet, la syntaxe de cette fonction est $ con -> affect_rows , Où, $ con est l'objet de connexion -

<?php
   //Creating a connection
   $con = new mysqli("localhost", "root", "password", "mydb");

   //Query to retrieve all the rows of employee table
   $con -> query("SELECT * FROM employee");

   //Number of affected rows
   $rows = $con -> affected_rows;
   print("Number of affected rows: ".$rows);

   //Closing the connection
   $con -> close();
?>

Cela produira le résultat suivant -

Number of affected rows: 5

Exemple

Vérifions les valeurs de retour de cette fonction quand, il n'y a pas de quires (spécifié) plus tôt et, lorsque la requête a une erreur ou qu'elle n'affecte aucune ligne -

<?php
   //Creating a connection
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   $rows1 = mysqli_affected_rows($con);
   print("Rows Affected (no specified previous operations): ".$rows1."\n");

   //Query to retrieve all the rows of employee table
   mysqli_query($con, "SELECT * FORM employee");
   $rows2 = mysqli_affected_rows($con);
   print("Rows Affected (when query has error): ".$rows2."\n");

   //Query to retrieve all the rows of employee table
   mysqli_query($con, "SELECT  FIRST_NAME FROM employee WHERE AGE <=19");
   $rows3 = mysqli_affected_rows($con);
   print("Rows Affected (when query does nothing): ".$rows3."\n");

   //Closing the connection
   mysqli_close($con);
?>

Cela produira le résultat suivant -

Rows Affected (no specified previous operations): 0
Rows Affected (when query has error): -1
Rows Affected (when query does nothing): 0

Exemple

L'exemple suivant montre l'utilisation de la fonction mysqli_affected_rows avec les requêtes SELECT, UPDATE, INSERT et DELETE -

<?php
   //Creating a connection
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   //Query to SELECT all the rows of the employee table
   mysqli_query($con, "SELECT * FROM employee where INCOME > 8000");
   print("Rows Affected by SELECT query: ".mysqli_affected_rows($con)."\n");

   //Query to UPDATE the rows of the employee table
   mysqli_query($con, "UPDATE employee set INCOME=INCOME+5000 where FIRST_NAME in ('Ramya', 'Trupthi', 'Sarmista')");
   print("Rows Affected by UPDATE query: ".mysqli_affected_rows($con)."\n");

   //Query to INSERT a row into the employee table
   mysqli_query($con, "INSERT INTO employee VALUES ('Archana', 'Mohonthy', 30, 'M', 13000, 106)");
   print("Rows Affected by INSERT query: ".mysqli_affected_rows($con)."\n");

   //Query to DELETE rows of the employee table
   mysqli_query($con, "DELETE FROM employee where AGE > 25");
   print("Rows Affected by DELETE query: ".mysqli_affected_rows($con)."\n");

   //Closing the connection
   mysqli_close($con);
?>

Cela produira le résultat suivant -

Rows Affected by SELECT query: 4
Rows Affected by UPDATE query: 3
Rows Affected by INSERT query: 1
Rows Affected by DELETE query: 3