(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::rowCount — Son SQL deyiminden etkilenen satır sayısını döndürür
PDOStatement
nesnesi tarafından çalıştırılan son
DELETE, INSERT veya UPDATE deyiminden etkilenen satır sayısını döndürür.
SELECT
gibi sonuç kümeleri oluşturan deyimler için
davranış belirsizdir ve her sürücü için farklıdır. Bazı veritabanları
(örneğin, MySQL tamponlu kipteyken) bu deyim tarafından üretilen satır
sayısını döndürebilmektedir. Ancak bu davranış tüm veritabanları için
garanti edilmediğinden taşınıbilir bir uygulamada bu davranışa itibar
edilmemelidir.
Bilginize:
Bu yöntem SQLite sürücü ile ve
PDO::CURSOR_SCROLL
özniteliğinePDO::ATTR_CURSOR
atandığında PostgreSQL sürücüsü ile daima "0" (sıfır) döndürür.
Bu işlevin bağımsız değişkeni yoktur.
Etkilenen satır sayısı.
PDO::ATTR_ERRMODE
özniteliğine
PDO::ERRMODE_WARNING
atanırsa
E_WARNING
düzeyinde bir hata çıktılanır.
PDO::ATTR_ERRMODE
özniteliğine
PDO::ERRMODE_EXCEPTION
atanırsa
PDOException istisnası oluşur.
Örnek 1 - Silinen satır sayısının döndürülmesi
PDOStatement::rowCount() bir DELETE, INSERT veya UPDATE deyiminden etkilenen satır sayısını döndürür.
<?php
/* FRUIT tablosundaki tüm satırları silelim */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Silinen satır sayısını döndürelim */
$count = $del->rowCount();
print "$count satır silindi.\n";
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
9 satır silindi.
Örnek 2 - Bir SELECT deyiminden etkilenen satırların sayılması
Çoğu veritabanında PDOStatement::rowCount() bir SELECT deyiminden etkilenen satır sayısını döndürmez. Bu bakımdan, SELECT deyiminde kullandığınız yüklemlerin kullanıldığı bir SELECT COUNT(*) deyimi ile yapacağınız bir PDO::query() çağrısından sonra bir PDOStatement::fetchColumn() çağrısı ile etkilenen satır sayısını elde edebilirsiniz.
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Etkilenen " . $count . " kayıt var.";
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Etkilenen 2 kayıt var.