CodeBlanks Logo Icon CodeBlanks

Özet - CRUD işlemleri

PHP kursu · İleri seviye · Ders 21/92

INSERT, SELECT, UPDATE ve DELETE'le kullanıcı yönetimi uygulaması yazarsın.

Özet - CRUD işlemleri

CRUD dört temel veri işleminin baş harfleridir: Create (INSERT), Read (SELECT), Update (UPDATE) ve Delete (DELETE). PDO ile her birini prepared statement kullanarak güvenle yaparsın.

İşlemleri fonksiyonlara soyutlamak tekrarı azaltır: createUser, findUser, updateUser ve deleteUser aynı bağlantıyı tekrar tekrar kullanır.

Insert'ten sonra lastInsertId(), güncelleme ve silmeden sonra rowCount() sonuçları doğrular; transaction ile ilgili işlemleri atomik tutarsın.

Uygulama Kullanıcı yönetimi mini uygulaması

Aşağıdaki iskelette dört fonksiyon yaz: createUser($pdo, $name, $email) INSERT + lastInsertId() döndürür; findUser($pdo, $id) SELECT + fetch(PDO::FETCH_ASSOC) döndürür; updateUser($pdo, $id, $name) UPDATE + rowCount() döndürür; deleteUser($pdo, $id) DELETE + rowCount() döndürür. İskeletin altındaki test kodu olduğu gibi kalsın.

Örnek çözümü göster
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)");

function createUser($pdo, $name, $email) {
    $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
    $stmt->execute([$name, $email]);
    return $pdo->lastInsertId();
}

function findUser($pdo, $id) {
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
    $stmt->execute([$id]);
    return $stmt->fetch(PDO::FETCH_ASSOC);
}

function updateUser($pdo, $id, $name) {
    $stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");
    $stmt->execute([$name, $id]);
    return $stmt->rowCount();
}

function deleteUser($pdo, $id) {
    $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
    $stmt->execute([$id]);
    return $stmt->rowCount();
}

$id = createUser($pdo, 'Ayşe', 'ayse@example.com');
updateUser($pdo, $id, 'Ayşe Y.');
$user = findUser($pdo, $id);
echo $user['name'] . "\n";
deleteUser($pdo, $id);
$stmt = $pdo->query("SELECT COUNT(*) FROM users");
echo $stmt->fetchColumn() . "\n";

Kendini test et

  1. CRUD harfini SQL komutuna eşle

    Create
    INSERT
    Read
    SELECT
    Update
    UPDATE
    Delete
    DELETE
  2. findUser fonksiyonunu tamamla

    function findUser($pdo, $id) {
        $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
        $stmt->execute([$id]);
        return $stmt->____(PDO::FETCH_ASSOC);
    }
    Cevabı göster
    function findUser($pdo, $id) {
        $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
        $stmt->execute([$id]);
        return $stmt->fetch(PDO::FETCH_ASSOC);
    }

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