mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Find ud af hvor mange rækker der blev påvirket, ved sidste MySQL forespørgsel

Beskrivelse

int mysql_affected_rows ( [resource link_identifier])

mysql_affected_rows() returnerer antallet af påvirkede rækker ved sidste brug af INSERT, UPDATE eller DELETE i en forespørgsel associeret med link_identifier. Hvis link beskriveren, ikke er specificeret, vel det sidst, af mysql_connect(), åbnede link blive brugt.

Bemærk: Hvis du bruger transaktioner, er du nødt til at kalde mysql_affected_rows() efter du brugte INSERT, UPDATE, eller DELETE forespørgslen, ikke efter en overdragelse

Hvis den sidste forespørgsel var en DELETE forespørgsel uden en WHERE klausul, vil alle rækker blive slettet, men den funktion vil returnere 0.

Bemærk: Når du bruger UPDATE, vil MySQL ikke opdatere kolonner, hvor den nye værdi er det samme som den gamle. Dette giver mulighed for at mysql_affected_rows() ikke gengiver det præcise nummer af matchende rækker, men kun det antal af rækker der blev påvirket af forespørgslen.

mysql_affected_rows() virker ikke med SELECT forespørgsler, kun med forespørgsler der ændrer noget. for at finde ud af hvor mange rækker der er blevet returneret af en SELECT forespørgsel, brug mysql_num_rows().

Hvis den sidste forespørgsel ikke blev udført korrekt, vil denne funktion returnere -1.

Eksempel 1. Delete-Forespørgsel

<?php
/* forbinder til databasen */
$link = mysql_connect('localhost', 'mysql_bruger', 'mysql_password');
if (!
$link) {
    die(
'Kunne ikke forbinde til databasen: ' . mysql_error());
}
mysql_select_db('mindb');

/* dette vil returnere det korrekte antal af slettede rækker */
mysql_query('DELETE FROM mintable WHERE id < 10');
printf("Rækker slettet: %d\n", mysql_affected_rows());

/* med en WHERE klausul er der aldrig er korrekt, bør det returnere 0 */
mysql_query('DELETE FROM mintable WHERE 0');
printf("Rækker slettet: %d\n", mysql_affected_rows());
?>

Ovenstående eksempel vil give følgende output:

Rækker slettet: 10
Rækker slettet: 0

Eksempel 2. Update-Forespørgsel

<?php
/* forbinder til databasen */
mysql_connect("localhost", "mysql_bruger", "mysql_password") or
    die(
"Kunne ikke forbinde til databasen: " . mysql_error());
mysql_select_db("mindb");

/* opdatere rækker */
mysql_query("UPDATE mintable SET used=1 WHERE id < 10");
printf ("Opdaterede rækker: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

Ovenstående eksempel vil give følgende output:

Opdaterede rækker: 10

Se også mysql_num_rows(), og mysql_info().