Função PHP mysqli_affected_rows ()
Definição e Uso
o mysqli_affected_rows() A função retorna o número de linhas afetadas pela operação anterior, se invocada depois da consulta INSERT, UPDATE, REPLACE ou DELETE.
Quando usada após instruções de seleção, essa função retorna o número de linhas.
Sintaxe
mysqli_affected_rows($con)
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 | con(Mandatory) Este é um objeto que representa uma conexão com o servidor MySQL. |
Valores Retornados
A função PHP mysqli_affected_rows () retorna um valor inteiro indicando o número de linhas afetadas pela operação anterior (SELECT, INSERT, UPDATE, REPLACE ou DELETE).
Se a consulta anterior tiver um erro, esta função retorna -1. Se não houver linhas afetadas ou a consulta / operação anterior não for uma das mencionadas acima, esta função retorna0.
Versão PHP
Esta função foi introduzida pela primeira vez no PHP Versão 5 e funciona em todas as versões posteriores.
Exemplo
O exemplo a seguir demonstra o uso da função mysqli_affected_rows () (no estilo procedural) -
<?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);
?>
Isso produzirá o seguinte resultado -
Number of affected rows: 5
Exemplo
No estilo orientado a objetos, a sintaxe desta função é $ con -> associated_rows , Onde, $ con é o objeto de conexão -
<?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();
?>
Isso produzirá o seguinte resultado -
Number of affected rows: 5
Exemplo
Vamos verificar os valores de retorno desta função quando não houver nenhum (especificado) questionário anterior a ela e, quando a consulta tiver um erro ou não afetar nenhuma linha -
<?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);
?>
Isso produzirá o seguinte resultado -
Rows Affected (no specified previous operations): 0
Rows Affected (when query has error): -1
Rows Affected (when query does nothing): 0
Exemplo
O exemplo a seguir demonstra o uso da função mysqli_affected_rows com consultas 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);
?>
Isso produzirá o seguinte resultado -
Rows Affected by SELECT query: 4
Rows Affected by UPDATE query: 3
Rows Affected by INSERT query: 1
Rows Affected by DELETE query: 3