CodeBlanks Logo Icon CodeBlanks

DELETE ile kayıt silme

PHP kursu · İleri seviye · Ders 18/92

PDO ve prepared statement ile kaydı silmeyi öğrenirsin.

DELETE ile kayıt silme

Kayıt silmek için DELETE FROM komutunu prepared statement ile çalıştırırsın. WHERE yan tümcesi hangi satırların kaldırılacağını belirler.

Örneğin DELETE FROM users WHERE id = ? yalnızca belirli ID'ye sahip satırı siler; değer execute() ile güvenle geçirilir.

WHERE olmadan DELETE tablodaki tüm satırları kaldırır; bu yüzden koşulu her zaman ekle.

Silme sonrası sayım

Silme işleminin etkisini görmek için kalan satır sayısını SELECT COUNT(*) FROM users sorgusu ile çekersin.

PDO fetchColumn() tek sütunluk sonucu doğrudan döndürür; bu, COUNT gibi tek değerli sorgularda pratiktir.

Sorguyu query() ile doğrudan çalıştırabilirsin; parametre almadığı için prepared statement gerektirmez.

Uygulama Kullanıcı sil ve kalan sayıyı yazdır

Aşağıdaki iskelette prepare ve execute ile 'Ali' kullanıcısını sil. Sonra SELECT COUNT(*) FROM users ile kalan satır sayısını fetchColumn() ile çek ve 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)");
$pdo->exec("INSERT INTO users (name) VALUES ('Ayşe')");
$pdo->exec("INSERT INTO users (name) VALUES ('Ali')");
$pdo->exec("INSERT INTO users (name) VALUES ('Deniz')");
$stmt = $pdo->prepare("DELETE FROM users WHERE name = ?");
$stmt->execute(['Ali']);
$stmt = $pdo->query("SELECT COUNT(*) FROM users");
echo $stmt->fetchColumn() . "\n";

Kendini test et

  1. DELETE yan tümcesini tamamla

    $stmt = $pdo->prepare("DELETE ____ users WHERE id = ?");
    Cevabı göster
    $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
  2. DELETE parçalarını eşle

    DELETE
    Satır kaldırır
    FROM
    Tablo kaynağı
    WHERE
    Hangi satırlar
    execute()
    Sorguyu çalıştırır
  3. ID'ye göre silmek için en güvenli yol hangisi?

    • DELETE FROM users
    • DELETE users WHERE id = ?
    • DELETE id FROM users
    • DELETE FROM users WHERE id = ?
    Cevabı göster

    DELETE FROM users WHERE id = ? — DELETE FROM users WHERE id = ? doğru ve güvenli hazırlanmış sorgudur.

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