 Yazar : leventersoy
Seviye:
|
mysql_affected_rows() fonksiyonu mantığı ve
fonksiyonun kullanımı
mysql_affected_rows
(PHP 4, PHP 5, PECL mysql:1.0)
mysql_affected_rows — Bir önceki elemanı etkileyen satır sayısını verir.
Parametreler
link_identifier
MySQL bağlantısı. Bağlantı tanımlayıcısı (link_identifier) belirtilmemişse mysql_connect() tarafından açılmış son bağlantı geçerli kabul edilir. Eğer böyle bir bağlantı bulunamazsa, mysql_connect() fonksiyonu hiçbir parametre verilmeden çalıştırılır. Eğer bu da başarısız olursa, E_WARNING seviyesinde bir uyarı meydana gelir.
Dönüş Değerleri (Return Values)
Girilen id numarası ile etki edilecek satırlar belirlenir ve sorgu çalıştırılır, eğer ki sorgu başarız olursa dönüşler -1 olarak değer alır.
Eğer son sorgu DELETE ise ve WHERE yoksa butun kayitlar tablodan silinir. Fakat bu fonksiyon 0 olur , eğer MySQL versiyonu 4.1.2 den onceyse
Update kullanıldığında ise , eğer yeni değer ile eski değer aynı ise MySQL kolonları güncellenmez, böylelikle ekran çıktısı olarak gösterilen değer sadece güncellenen satırlar için geçerli bir ifadedir.
değiştirme işlemlerinde önce aynı primary key değerinde olan kayıtları siler ve yerine yenisini koyar. Bu fonksiyonda silinen kayıtları artı ve de yeni yerleştirilmiş kayıtları gösterir.
Örnekler
Örnek#1 mysql_affected_rows() örneği;
<?php
$link = mysql_connect('localhost', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
die('Bağlantı sağlanamadı: ' . mysql_error());
}
mysql_select_db('veritabanim');
/* belirtilen ihtimal dahilinde numara aranır ve belirlenen id numarasının altındaki id içeriği silinir */
mysql_query('DELETE FROM tablom WHERE id < 10');
printf("silinen kayitlar: %d\n", mysql_affected_rows());
/* with a where clause that is never true, it should return 0 */
mysql_query('DELETE FROM tablom WHERE 0');
printf("silinen kayitlar: %d\n", mysql_affected_rows());
?>
Yukarıdaki örnek şuna benzer bir çıktı üretecektir:
silinen kayıtlar: 10
silinen kayıtlar: 0
Örnek#2 mysql_affected_rows() örnek iş yaptırma;
<?php
$link = mysql_connect('localhost', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
die('Bağlantı sağlanmadı: ' . mysql_error());
}
mysql_select_db('veritabanim');
/* Update records */
mysql_query("UPDATE tablom SET used=1 WHERE id < 10");
printf ("guncellenen kayıt sayısı: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
yukarıda çıktı şuna benzer olacaktır.
guncellenen kayıt sayısı : 5
|