Funzione PHP mysqli_affected_rows ()

Definizione e utilizzo

Il mysqli_affected_rows() la funzione restituisce il numero di righe interessate dall'operazione precedente, se richiamata dopo la query INSERT, UPDATE, REPLACE o DELETE.

Quando viene utilizzata dopo le istruzioni select, questa funzione restituisce il numero di righe.

Sintassi

mysqli_affected_rows($con)

Parametri

Suor n Parametro e descrizione
1

con(Mandatory)

Questo è un oggetto che rappresenta una connessione a MySQL Server.

Valori restituiti

La funzione mysqli_affected_rows () di PHP restituisce un valore intero che indica il numero di righe interessate dalla precedente operazione (SELECT, INSERT, UPDATE, REPLACE o DELETE).

Se la query precedente ha un errore, questa funzione restituisce -1. Se non ci sono righe interessate o la query / operazione precedente non è una delle sopra menzionate, questa funzione restituisce0.

Versione PHP

Questa funzione è stata introdotta per la prima volta nella versione 5 di PHP e funziona in tutte le versioni successive.

Esempio

L'esempio seguente mostra l'utilizzo della funzione mysqli_affected_rows () (in stile procedurale) -

<?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);
?>

Questo produrrà il seguente risultato:

Number of affected rows: 5

Esempio

Nello stile orientato agli oggetti la sintassi di questa funzione è $ con -> influenzate_rows , dove $ con è l'oggetto di connessione -

<?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();
?>

Questo produrrà il seguente risultato:

Number of affected rows: 5

Esempio

Controlliamo i valori di ritorno di questa funzione quando non ci sono richieste (specificate) precedenti e, quando la query ha un errore o non ha effetto su alcuna riga -

<?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);
?>

Questo produrrà il seguente risultato:

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

Esempio

L'esempio seguente mostra l'utilizzo della funzione mysqli_affected_rows con le query SELECT, UPDATE, INSERT e, 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);
?>

Questo produrrà il seguente risultato:

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