PHP mysql_affected_rows() functie

Definitie en gebruik

De mysql_affected_rows() functie retourneert het aantal regels dat de laatste MySQL-actie heeft beïnvloed.

syntaxis

mysql_affected_rows(link_identifier)
parameter beschrijving
link_identifier verplicht. De MySQL-verbindingsteken. Als deze niet is gespecificeerd, wordt de laatst gebruikte mysql_connect() geopende verbinding. Als deze verbinding niet gevonden wordt, probeert de functie om mysql_connect() Maak een verbinding en gebruik deze. Als er een onverwachte situatie optreedt, wordt er een waarschuwing van niveau E_WARNING gegenereerd als de verbinding niet gevonden wordt of de verbinding niet kan worden gemaakt.

uitleg

verkrijgen van het laatste link_identifier Aantal regels die worden beïnvloed door een INSERT, UPDATE of DELETE query.

Retourneert de waarde

Retourneert het aantal geraakte rijen als de uitvoering succesvol is, of -1 als de laatste zoekopdracht mislukt.

Als de laatste actie een DELETE-zoekopdracht is zonder WHERE-bedinging, worden alle records in de tabel verwijderd, maar het retourneerwaarde van deze functie was tot versie 4.1.2 altijd 0.

Bij het uitvoeren van een UPDATE-zoekopdracht zal MySQL niet de kolommen bijwerken die dezelfde waarden hebben als de oorspronkelijke waarden. Dit maakt dat de waarde van mysql_affected_rows() niet altijd het aantal records is dat voldoet aan de zoekvoorwaarden, maar alleen het aantal daadwerkelijk gewijzigde records wordt geretourneerd.

De REPLACE-sqlusentoevoeging verwijdert eerst de records met dezelfde primaire sleutel en voegt vervolgens een nieuw record in. De functie retourneert het aantal verwijderde records plus het aantal ingevoegde records.

Voorbeeld

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("Kon niet verbinden: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();;
echo "Gewiste records: " . $rc;
mysql_close($con);
?>

Uitvoer:

Gewiste records: 4