PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCountSon SQL deyiminden etkilenen satır sayısını döndürür

Açıklama

public PDOStatement::rowCount(): int

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ğine PDO::ATTR_CURSOR atandığında PostgreSQL sürücüsü ile daima "0" (sıfır) döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Etkilenen satır sayısı.

Hatalar/İstisnalar

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.

Örnekler

Ö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.

Ayrıca Bakınız