(PHP 5 >= 5.1.0, PHP 7, 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.
Eğer PDOStatement nesnesi ile ilişkili deyim bir SELECT deyimi ise bazı veritabanları bu deyimden etkilenen satır sayısını da döndürebilmektedir. Ancak bu davranış tüm veritabanları için garanti edilmediğinden taşınıbilir bir uygulamada bu davranışa itibar edilmemelidir.
Etkilenen satır sayısı.
Ö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 örneğin çıktısı:
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";
if ($res = $conn->query($sql)) {
/* Bu deyimden etkilenen satır sayısına bakalım */
if ($res->fetchColumn() > 0) {
/* Gerçek SELECT deyimini kullanarak sonuçları alabiliriz */
$sql = "SELECT name FROM fruit WHERE calories > 100";
foreach ($conn->query($sql) as $row) {
print "Meyve: " . $row['NAME'] . "\n";
}
}
/* Etkilenen satır yokmuş; gereğini yapalım */
else {
print "Sorguyla eşleşen satır yok.";
}
}
$res = null;
$conn = null;
?>
Yukarıdaki örneğin çıktısı:
apple banana orange pear