Özet - CRUD işlemleri
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
-
CRUD harfini SQL komutuna eşle
- Create
- INSERT
- Read
- SELECT
- Update
- UPDATE
- Delete
- DELETE
-
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); }