Função mysql_affected_rows() do PHP

Definição e uso

A função mysql_affected_rows() retorna o número de linhas afetadas pela última operação MySQL.

Sintaxe

mysql_affected_rows(link_identifier)
Parâmetros Descrição
link_identifier Obrigatório. Identificador de conexão do MySQL. Se não for especificado, será usado o último que foi mysql_connect() Conexões abertas. Se não encontrar essa conexão, a função tentará chamar mysql_connect() Estabelecer uma conexão e usá-la. Se ocorrer um acidente, não encontrar a conexão ou não estabelecer a conexão, o sistema emitirá uma mensagem de aviso de nível E_WARNING.

Descrição

Obter a última vez que link_identifier Número de linhas afetadas pela consulta INSERT, UPDATE ou DELETE relacionada.

Retorna o valor

Se a execução for bem-sucedida, retorna o número de linhas afetadas, se a última consulta falhar, a função retorna -1.

Se a última operação foi uma consulta DELETE sem condição (WHERE), todos os registros da tabela serão deletados, mas o valor retornado por essa função era 0 antes da versão 4.1.2.

Quando é usado uma consulta UPDATE, o MySQL não atualiza a coluna cujos valores originais e novos são iguais. Isso faz com que o valor retornado pela função mysql_affected_rows() não necessariamente seja o número de registros que correspondem aos critérios da consulta, apenas o número de registros realmente modificados será retornado.

A cláusula REPLACE primeiro deleta os registros com a mesma chave primária e então insere um novo registro. A função retorna o número de registros deletados mais o número de registros inseridos.

Exemplo

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("Não foi possível conectar: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();;
echo "Registros deletados: " . $rc;
mysql_close($con);
?>

Saída:

Registros deletados: 4