PHP kézikönyv
Előző |  | Következő

# mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Az előző MySQL műveletben érintett sorok számát adja meg

## Leírás

int mysql_affected_rows ( [resource link_identifier] )

A mysql_affected_rows() függvény az előző link_identifier-rel azonosított kapcsolatban kiadott INSERT, UPDATE vagy DELETE kérésben érintett sorok számát adja vissza. Ha nem adsz meg kapcsolat-azonosítót, akkor az utolsó mysql_connect()-tel megnyitott kapcsolatról kapsz információt.

> Megjegyzés: Ha transzakciókezelést használsz, akkor a mysql_affected_rows() függvényt az INSERT, UPDATE, vagy DELETE kérés után közvetlenül, nem a kommit után kell meghívni.

Ha az utolsó lekérdezés egy WHERE feltétel nélküli DELETE volt, akkor bár a táblából minden sor törlődik, a függvény nullát fog visszaadni.

> Megjegyzés: Ha UPDATE-tel használod, a MySQL nem fogja azokat a sorokat frissíteni, ahol a sor régi és új értéke megegyezik. Így nem kizárt, hogy a mysql_affected_rows() függvény nem pont az egyező sorok számát adja vissza, hanem csak a ténylegesen megváltoztatott sorok számát.

A függvény nem működik a lekérdező SELECT kéréssel együtt használva, csak azokkal a lekérdezésekkel, melyek rekordokat módosítanak. Ha egy SELECT lekérdezésben kapott sorok számát szeretnéd megkapni, akkor használd a mysql_num_rows() függvényt.

Ha az utolsó kérés meghiusult, akkor a függvény -1-gyel tér vissza.

Példa 1. Delete kérés

`<?php
/* Csatlakozás az adatbázishoz */
$kapcsolat = mysql_pconnect('localhost', 'mysql_felhasználó', 'titok');
if (!$kapcsolat) {
die('Nem tudok csatlakozni' . mysql_error());
}
mysql_select_db('adatbazis');
/* Ez visszaadja a törölt rekordszámot */
mysql_query('DELETE FROM tablanev WHERE id < 10');
printf("%d rekordot töröltem\n", mysql_affected_rows());
/* Ha where feltétel sohasem true, 0-át ad */
mysql_query("DELETE FROM tablanev WHERE 0");
printf("%d rekordot töröltem\n", mysql_affected_rows());
?>`

A fenti példa kimenete:

    10 rekordot töröltem
    0 rekordot töröltem

Példa 2. Update kérés

`<?php /* Csatlakozás az adatbázishoz */ mysql_pconnect('localhost', 'mysql_felhasználó', 'titok') or die('Nem tudok csatlakozni'); mysql_select_db('adatbazis'); /* Update */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf("%d rekordot frissítettem\n", mysql_affected_rows()); mysql_query("COMMIT"); ?>`

A fenti példa kimenete:

    10 rekordot frissítettem

Lásd még amysql_num_rows() és a mysql_info() függvényt!

Előző | Tartalom | Következő
MySQL függvények | Fel | mysql_change_user