PHP'de PDO Kullanımı ve Güvenli Veritabanı Sorguları

Noxen

Administrator
Yönetici
Katılım
20 Eylül 2026
Mesajlar
214
Tepkime puanı
17
Puan
18
1791320824415.webp


PHP'de PDO Kullanımı ve Güvenli Veritabanı Sorguları

PHP ile veritabanı işlemleri yaparken PDO, hem kullanımı kolay hem de güvenli bir seçenek olarak karşımıza çıkıyor. Özellikle kullanıcıdan alınan verilerle SQL sorguları çalıştırırken prepared statement kullanmak önemli.

Öncelikle PDO ile veritabanına bir bağlantı oluşturalım:

PHP:
<?php

$host = "localhost";
$dbname = "site_db";
$username = "root";
$password = "";

try {
    $db = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $username,
        $password
    );

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Veritabanı bağlantısı başarılı.";

} catch (PDOException $e) {
    echo "Bağlantı başarısız.";
}
?>

Bağlantıdan sonra SQL sorgularında doğrudan kullanıcı verisini sorgunun içine yazmak yerine "prepare()" ve "execute()" kullanabiliriz.

Örneğin kullanıcı adına göre kayıt aramak için:

PHP:
$sql = "SELECT * FROM users WHERE username = :username";

$stmt = $db->prepare($sql);
$stmt->execute([
'username' => $username
]);

$user = $stmt->fetch(PDO::FETCH_ASSOC);

Buradaki ":username" bir parametre olarak kullanılıyor. Böylece kullanıcıdan gelen değer doğrudan SQL sorgusunun içerisine eklenmemiş oluyor.

Yeni bir kayıt eklerken de aynı yöntem kullanılabilir:

PHP:
$sql = "INSERT INTO users (username, email)
VALUES (:username, :email)";

$stmt = $db->prepare($sql);

$stmt->execute([
'username' => $username,
'email' => $email
]);

PDO kullanırken prepared statement yöntemine alışmak, özellikle kullanıcı girişleri bulunan projelerde oldukça faydalıdır. Kodun daha düzenli olmasının yanında SQL Injection gibi problemlere karşı da önemli bir güvenlik katmanı sağlar.

Kısacası PHP ile MySQL kullanıyorsanız PDO + prepared statement ikilisi, projelerde tercih edilebilecek sağlam yöntemlerden biridir.
 
Geri
Üst