CRUD İşlemleri 1: PHP ile Veritabanına Kayıt Ekleme (Insert)

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Veritabanına veri eklemek, sadece bir SQL komutu çalıştırmak değildir. Kullanıcıdan gelen veriyi temizlemek, güvenliği sağlamak ve işlemin sonucuna göre kullanıcıyı bilgilendirmek bu sürecin ayrılmaz parçalarıdır. 2026 standartlarında, veritabanına doğrudan değişken göndermek (SQL Injection riski nedeniyle) tamamen terk edilmiştir.

1. Hazırlık: Örnek Veritabanı Tablosu​


Bu rehberde kullanacağımız basit bir üyeler tablosu yapısı şu şekildedir:

SQL:
CREATE TABLE uyeler (
id INT AUTO_INCREMENT PRIMARY KEY,
kullanici_adi VARCHAR(50) NOT NULL,
eposta VARCHAR(100) NOT NULL,
kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2. Güvenli Kayıt Ekleme (INSERT)​


Veri eklerken en güvenli yöntem Prepared Statements (Hazırlanmış İfadeler) kullanmaktır. Bu yöntem, SQL komutu ile veriyi birbirinden ayırarak kötü niyetli kişilerin veritabanınıza sızmasını engeller.

PHP:
<?php
// Daha önce oluşturduğumuz Database sınıfını dahil ediyoruz
require_once 'Database.php';

try {
$db = Database::getInstance()->getConnection();

// 1. Adım: Kullanıcıdan gelen veriler (Örn: Bir formdan gelen $_POST verisi)
$kadi = &quot;YazilimciDostu&quot;;
$mail = &quot;[email protected]&quot;;

// 2. Adım: SQL sorgusunu hazırla (Değerler yerine :etiket kullanıyoruz)
$sql = &quot;INSERT INTO uyeler (kullanici_adi, eposta) VALUES (:kadi, :mail)&quot;;
$sorgu = $db-&gt;prepare($sql);

// 3. Adım: Verileri etiketlerle eşleştir ve çalıştır
$sonuc = $sorgu-&gt;execute([
    &#39;kadi&#39; =&gt; $kadi,
    &#39;mail&#39; =&gt; $mail
]);

if ($sonuc) {
    $son_id = $db-&gt;lastInsertId();
    echo &quot;Kayıt başarıyla eklendi! Üye ID: &quot; . $son_id;
}

} catch (PDOException $e) {
echo "Hata Oluştu: " . $e->getMessage();
}
?>

3. Neden Execute İçinde Dizi (Array) Kullanmalıyız?​



  • [] Okunabilirlik: Hangi verinin hangi sütuna gittiğini açıkça görürsünüz.
    [] Otomatik Filtreleme: PDO, dizi içindeki verileri otomatik olarak tırnak içine alır ve zararlı karakterleri etkisiz hale getirir.
  • Çoklu Ekleme: Aynı sorguyu farklı dizilerle defalarca çalıştırarak performans kazanırsınız.

4. Form Verilerini İşlemek (Gerçek Dünya Senaryosu)​


Bir HTML formundan gelen veriyi eklerken mutlaka empty() kontrolü ve filtreleme yapmalısınız:

PHP:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
kadi=trim(_POST['username']);
mail=filtervar(_POST['email'], FILTER_SANITIZE_EMAIL);

if (!empty($kadi) && filter_var($mail, FILTER_VALIDATE_EMAIL)) {
    // INSERT işlemi buraya gelecek
    $stmt = $db->prepare("INSERT INTO uyeler (kullanici_adi, eposta) VALUES (?, ?)");
    $stmt->execute([$kadi, $mail]);
    echo "Kayıt tamamlandı.";
} else {
    echo "Lütfen geçerli bilgiler girin.";
}

}

Başarılı Bir Insert İşleminin Adımları​


AşamaİşlemNeden Önemli?
1. DoğrulamaVerinin boş olup olmadığını kontrol et.Hatalı/Eksik kayıtları önler.
2. FiltrelemeHTML etiketlerini temizle (strip_tags).XSS saldırılarını engeller.
3. HazırlamaPDO prepare() fonksiyonunu kullan.SQL Injection'ı imkansız kılar.
4. Geri BildirimlastInsertId() ile kullanıcıya bilgi ver.Kullanıcı deneyimini (UX) iyileştirir.

Sonuç​


Veritabanına kayıt ekleme, uygulamanızın veri toplama aşamasıdır. Bu rehberdeki PDO + Prepared Statements yöntemini kullanarak hem güvenli hem de profesyonel bir başlangıç yaptınız. Unutmayın; temiz veri, temiz bir veritabanı ve güvenli bir gelecek demektir.
 
Geri
Üst