PHP mysql_affected_rows() 函数

定义和用法

mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

语法

mysql_affected_rows(link_identifier)
参数 描述
link_identifier 必需。MySQL 的连接标识符。如果没有指定,默认使用最后被 mysql_connect() 打开的连接。如果没有找到该连接,函数会尝试调用 mysql_connect() 建立连接并使用它。如果发生意外,没有找到连接或无法建立连接,系统发出 E_WARNING 级别的警告信息。

说明

取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

Palauttaa arvon

Jos suoritus onnistuu, palauttaa se vaikutuksissa olevien rivien määrän, jos viimeinen kysely epäonnistuu, funktio palauttaa -1.

Jos viimeinen operaatio on ilman ehtoja (WHERE) oleva DELETE-kysely, kaikki taulun tietueet poistetaan, mutta ennen 4.1.2-versiota tämä funktio palautti aina 0.

Kun käytetään UPDATE-kyselyä, MySQL ei päivitä sarakkeita, joiden alkuperäinen ja uusi arvo ovat samat. Tämä tekee siitä, että mysql_affected_rows() -funktio palauttaa arvon, joka ei välttämättä ole kysely条件所符合的记录数, vain todella muutetut tietueiden määrä palautetaan.

REPLACE-lause poistaa ensin saman avaintunnuksen omaavat tietueet, sitten lisää uuden tietueen. Funktio palauttaa poistettujen ja lisättyjen tietueiden määrän.

Esimerkki

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("Yhdistäminen epäonnistui: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();
echo "Poistettujen tietueiden määrä: " . $rc;
mysql_close($con);
?>

Tulostus:

Poistettujen tietueiden määrä: 4