PHP Manualen
forrige |  | næste

# mysql_affected_rows

(PHP 3, PHP 4, PHP 5)

mysql_affected_rows -- Find ud af hvor mange rækker der blev berørt af sidste MySQL kald

## Beskrivelse

int mysql_affected_rows ( [resource link_identifier] )

Find ud af hvor mange rækker, der blev berørt, af den sidste INSERT, UPDATE or DELETE foresprøgsel associeret med link_identifier.

## Parameterliste

link_identifier

  The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If by chance no connection is found or established, an `E_WARNING` level warning is generated.

## Returneringsværdier

Returnerer antal rækker der var berørt ved succes, og -1 hvis sidste forespørgsel mislykkes.

Hvis sidste forespørgsel var en DELETE forespørgsel, hvor ingen WHERE klausul, var angivet vil alle rækker være blevet slettet, men denne funktion vil returnere nul, ved MySQL versioner før 4.1.2. of the records will have been deleted from the table but this function will return zero with MySQL versions prior to 4.1.2.

Når man bruger UPDATE, vil MySQL ikke opdatere kolonner hvor den nye værdi er identisk med den gamle. Det vil skabe muligheden for at mysql_affected_rows() ikke angiver det samme antal rækker, som der blev genkendt, men kun dem der var berørt af forespørgslen.

REPLACE udsagnet, sletter først registrering med samme primær nøgle, og derefter indsætter den en ny registrering. Denne funktion vil dermed returnere nummeret af slettede registreringer, og nummeret af indsatte registreringer.

## Eksempler

Eksempel 1. mysql_affected_rows() eksempel

`<?php
$link = mysql_connect('localhost', 'mysql_bruger', 'mysql_kode');
if (!$link) {
die('Kunne ikke forbinde: ' . mysql_error());
}
mysql_select_db('midb');
/* detet skulle returnere det korrekte antal slettede registre */
mysql_query('DELETE FROM mintabel WHERE id < 10');
printf("Registre slettet: %d\n", mysql_affected_rows());
/* med en where klausul der aldrig er san, det burde returnere 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Registre slettet: %d\n", mysql_affected_rows());
?>`

Ovenstående eksempel vil udskrive noget der ligner:

    Registre slettet: 10
    Registre slettet: 0

Eksempel 2. mysql_affected_rows() eksempel der bruger transaktioner

`<?php $link = mysql_connect('localhost', 'mysql_bruger', 'mysql_kode'); if (!$link) { die('Kunne ikke forbinde: ' . mysql_error()); } mysql_select_db('mindb'); /* Opdater registre */ mysql_query("UPDATE mintable SET brugt=1 WHERE id < 10"); printf ("Opdaterede registre: %d\n", mysql_affected_rows()); mysql_query("COMMIT"); ?>`

Ovenstående eksempel vil udskrive noget der ligner:

    Opdaterede registre: 10

## Notes

> Transaktioner: Hvis du bruger transaktioner, skal du kalde mysql_affected_rows() efter hver INSERT, UPDATE, eller DELETE forespørgsel, ikke efter COMMIT.

> SELECT udsagn: For at returnere antallet af rækker, returneret af et SELECT udsagn, kan du bruge mysql_num_rows().

## Se også

mysql_num_rows()
mysql_info()

forrige | hjem | næste
MySQL-funktioner | op | mysql_change_user