PHP kézikönyv
Előző
Következő
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 * / mysql_pconnect( "localhost", "mysql_felhasználó", "titok") or die ("Nem tudok csatlakozni"); / * Ez visszaadja a törölt rekordszámot * / mysql_query("DELETE FROM mytable WHERE id 10"); printf ("%d rekordot töröltem\n", mysql_affected_rows()); / * Ha where feltétel nélkül használjuk a delete-ben, 0-át ad * / mysql_query("DELETE FROM mytable"); 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"); / * 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 a mysql_num_rows() és a mysql_info() függvényt!
Előző
Tartalom
Következő
MySQL függvények
Fel