PHP ile veritabanı işlemleri genellikle CRUD (Create, Read, Update, Delete) işlemlerini içerir. Bu yazıda, CRUD işlemlerinin ilk adımı olan CREATE (Kayıt Ekleme) komutunun nasıl kullanılacağını anlatacağız. Özellikle MySQL veritabanını kullanarak, PHP ile nasıl yeni bir kayıt oluşturabileceğimizi inceleyeceğiz.

1. Veritabanına Bağlantı

Veritabanı işlemlerini yapabilmek için öncelikle PHP ile MySQL veritabanına bağlanmanız gerekir. Bunun için en yaygın yöntemlerden biri PDO (PHP Data Objects) kütüphanesini kullanmaktır. PDO, farklı veritabanlarına kolayca bağlanmamızı sağlayan güçlü ve güvenli bir yöntemdir.
Aşağıda PHP ile PDO kullanarak MySQL veritabanına nasıl bağlanabileceğinizi gösteren bir örnek bulunmaktadır:
<?php
$host = 'localhost'; // Veritabanı sunucusu
$dbname = 'test_db'; // Veritabanı adı
$username = 'root';  // Veritabanı kullanıcı adı
$password = '';      // Veritabanı şifresi (boş ise "")

try {
    // PDO ile veritabanına bağlanma
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    // Hata modu ayarlama (Exception, hataları yakalayabilmek için)
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Veritabanına başarıyla bağlanıldı.";
} catch (PDOException $e) {
    die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
?>
Bu kod, PHP ile MySQL veritabanına başarılı bir şekilde bağlanmamızı sağlar. Bağlantı kurulduktan sonra artık CREATE işlemi için adım atabiliriz.

2. Veritabanına Kayıt Ekleme (INSERT INTO) 

Veritabanına yeni bir kayıt eklemek için INSERT INTO SQL komutunu kullanırız. Bu komut, belirttiğimiz tabloya yeni bir veri satırı ekler. Diyelim ki veritabanımızda aşağıdaki yapıya sahip bir users tablosu var:
ID Name E-mail
1 Ali ali@example.com
2 Ayşe ayse@example.com
PHP ile users tablosuna yeni bir kullanıcı eklemek için adım adım aşağıdaki işlemleri yapabiliriz.

HTML Formu ile Kayıt Verilerini Alma

Kullanıcıdan yeni kayıt bilgilerini almak için bir HTML formu oluşturalım: 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kullanıcı Ekleme</title>
</head>
<body>
    <h2>Yeni Kullanıcı Ekle</h2>
    <form action="create.php" method="POST">
        <label for="name">Ad:</label>
        <input type="text" name="name" id="name" required><br>
        
        <label for="email">Email:</label>
        <input type="email" name="email" id="email" required><br>
        
        <input type="submit" value="Ekle">
    </form>
</body>
</html>

PHP ile Form Verilerini Veritabanına Ekleme

Formdan gelen bilgileri alıp veritabanına kaydedecek olan create.php dosyasını oluşturalım:
<?php
// Veritabanı bağlantısı
$host = 'localhost';
$dbname = 'test_db';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Veritabanı bağlantı hatası: " . $e->getMessage());
}

// Formdan gelen verileri al
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    $email = $_POST['email'];

    // SQL sorgusu (INSERT INTO)
    $sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
    
    // Verileri güvenli bir şekilde yerleştirmek için hazırlanan sorgu (prepared statement) kullanıyoruz
    $stmt = $pdo->prepare($sql);
    
    // Parametreleri bağla
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);

    // Sorguyu çalıştır
    if ($stmt->execute()) {
        echo "Yeni kullanıcı başarıyla eklendi!";
    } else {
        echo "Kullanıcı eklenirken bir hata oluştu.";
    }
}
?>

3. Kayıt Ekleme İşleminin Açıklaması

PDO ile Veritabanına Bağlantı

PHP PDO kullanarak veritabanına bağlantı kuruyoruz. Bu bağlantı kurulduktan sonra, form verilerini alıp işleyerek veritabanına kayıt ekleme işlemi gerçekleştirebiliriz.

Formdan Gelen Verilerin İşlenmesi

$_POST süper global değişkeniyle formdan gelen verileri alıyoruz. Kullanıcının formda doldurduğu "name" ve "email" bilgileri PHP tarafından alınarak SQL sorgusunda kullanılmak üzere işlenir.

Prepared Statement Kullanımı

Veritabanı sorgularında Prepared Statements kullanmak, hem performans artışı sağlar hem de SQL enjeksiyonu gibi güvenlik açıklarını engeller. bindParam() metodu ile SQL sorgusundaki placeholder’ları (örn. :name ve :email) form verileriyle dolduruyoruz.

Sorgunun Çalıştırılması

$stmt->execute() ile sorgu çalıştırılır ve kullanıcı veritabanına eklenir. Eğer sorgu başarılı olursa "Yeni kullanıcı başarıyla eklendi!" mesajı görüntülenir.

4. Güvenlik Önlemleri 

Veritabanı işlemleri yaparken güvenliğe dikkat etmek çok önemlidir. Aşağıda dikkat edilmesi gereken birkaç önemli güvenlik önerisi yer almaktadır:
- SQL Enjeksiyonu Önleme: Veritabanına doğrudan kullanıcı verisi eklerken SQL enjeksiyonuna karşı korunmak için Prepared Statements (hazırlanan sorgular) kullanmak çok önemlidir. 
- Form Doğrulama: PHP ile sunucu tarafında kullanıcı tarafından gönderilen verilerin doğruluğunu kontrol edin (örneğin, boş alan kontrolü, e-posta formatı doğrulama gibi). 
- Veri Türü Kontrolü: Veritabanına eklemeden önce formdan gelen verilerin doğru türde ve formatta olduğundan emin olun.

Sonuç

Bu makalede, PHP ile veritabanında kayıt ekleme işlemini yani CREATE komutunun nasıl kullanılacağını öğrendik. PDO ile güvenli bir şekilde veritabanına bağlandık ve hazırlanan sorgular ile yeni kayıt ekledik. Bu temel bilgilerle PHP ve MySQL kullanarak daha karmaşık veritabanı işlemleri gerçekleştirebilirsiniz. CRUD işlemlerinin diğer adımları olan Read, Update, Delete işlemleri de benzer bir mantıkla çalışır ve ilerleyen süreçlerde bu işlemleri de öğrenebilirsiniz.