CodeBlanks Logo Icon CodeBlanks

rowCount() ile etkilenen satır

PHP kursu · İleri seviye · Ders 19/92

rowCount() ile UPDATE, DELETE ve INSERT'in etkilediği satır sayısını öğrenirsin.

rowCount() ne işe yarar?

rowCount() bir PDOStatement nesnesi üzerinde çağrılır ve son INSERT, UPDATE veya DELETE işleminin etkilediği satır sayısını döndürür.

Örneğin UPDATE users SET role = ? WHERE role = ? sorgusundan sonra $stmt->rowCount() kaç satırın değiştiğini söyler.

Sonuç, kullanıcıya geri bildirim vermek veya işlemi doğrulamak için kullanışlıdır.

Doğrulama deseni

Bir toplu güncelleme yaptığında rowCount() sonucunu yazdırmak işlemin beklendiği gibi çalıştığını doğrular.

Örneğin üç 'editor' kullanıcısını 'admin' yaptıysan ve rowCount() 3 döndürdüyse, üç satırın gerçekten değiştiğini bilirsin.

Sonuç 0 ise WHERE koşuluna uyan satır bulunamamıştır; bu bilgi eksik ID veya yazım hatasını yakalamada yardımcı olur.

Uygulama Toplu rol güncelle ve rowCount yazdır

Aşağıdaki iskelette prepare ve execute ile tüm 'editor' rolündeki kullanıcıları 'admin' yap. Sonra rowCount() ile etkilenen satır sayısını yazdır.

Örnek çözümü göster
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, role TEXT)");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Ayşe', 'editor')");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Ali', 'editor')");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Deniz', 'editor')");
$stmt = $pdo->prepare("UPDATE users SET role = ? WHERE role = ?");
$stmt->execute(['admin', 'editor']);
echo $stmt->rowCount() . "\n";

Kendini test et

  1. UPDATE sonrası $stmt->rowCount() ne döndürür?

    • Toplam satır sayısını
    • Etkilenen satır sayısını
    • Son kaydın ID'sini
    • Hata kodunu
    Cevabı göster

    Etkilenen satır sayısını — rowCount() UPDATE, DELETE veya INSERT sonrası etkilenen satır sayısını döndürür.

  2. Etkilenen satır sayısını al

    $count = $stmt->____();
    Cevabı göster
    $count = $stmt->rowCount();
  3. İşlemi sonuca eşle

    INSERT
    lastInsertId() ile yeni ID
    UPDATE
    rowCount() ile etkilenen satır
    DELETE
    rowCount() ile silinen satır
    SELECT
    fetchAll() ile satırlar

İleri seviye bölümündeki tüm dersler