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