Giriş: PDO Nedir?
PDO, PHP'de veritabanı işlemleri için kullanılan bir veri erişim katmanıdır. MySQL gibi farklı veritabanlarına erişim sağlamak için kullanılır. PDO, SQL enjeksiyonlarına karşı daha güvenli bir seçenek sunar ve farklı veritabanı türleri arasında geçiş yapmayı kolaylaştırır.
1. PDO ile MySQL Bağlantısı
Bağlantı Oluşturma:
$servername = "localhost";
$username = "kullanici_adiniz";
$password = "sifreniz";
$dbname = "veritabani_adiniz";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Veritabanına başarıyla bağlandı!";
} catch (PDOException $e) {
echo "Bağlantı hatası: " . $e->getMessage();
}
2. Temel Sorgular ve Veri Çekme
SELECT Sorgusu:
$stmt = $conn->query("SELECT * FROM kullanici_tablosu");
while ($row = $stmt->fetch()) {
echo "Kullanıcı Adı: " . $row['kullanici_adi'] . "<br>";
}
Veri Ekleme (INSERT):
$adi = "John";
$soyadi = "Doe";
$email = "john.doe@example.com";
$stmt = $conn->prepare("INSERT INTO kullanici_tablosu (adi, soyadi, email) VALUES (:adi, :soyadi, :email)");
$stmt->bindParam(':adi', $adi);
$stmt->bindParam(':soyadi', $soyadi);
$stmt->bindParam(':email', $email);
$stmt->execute();
echo "Yeni kullanıcı başarıyla eklendi!";
Veri Güncelleme (UPDATE):
$yeni_email = "john.doe@gmail.com";
$kullanici_id = 1;
$stmt = $conn->prepare("UPDATE kullanici_tablosu SET email = :email WHERE id = :id");
$stmt->bindParam(':email', $yeni_email);
$stmt->bindParam(':id', $kullanici_id);
$stmt->execute();
echo "Kullanıcı bilgileri güncellendi!";
Veri Silme (DELETE):
$kullanici_id = 1;
$stmt = $conn->prepare("DELETE FROM kullanici_tablosu WHERE id = :id");
$stmt->bindParam(':id', $kullanici_id);
$stmt->execute();
echo "Kullanıcı başarıyla silindi!";
3. Parametreli Sorgular ve SQL Injection'a Karşı Koruma
Parametreli SELECT Sorgusu:
$kullanici_adi = "john_doe";
$stmt = $conn->prepare("SELECT * FROM kullanici_tablosu WHERE kullanici_adi = :kullanici_adi");
$stmt->bindParam(':kullanici_adi', $kullanici_adi);
$stmt->execute();
while ($row = $stmt->fetch()) {
echo "Kullanıcı Adı: " . $row['kullanici_adi'] . "<br>";
}
4. Sonuç Kontrolü ve Bağlantı Kapatma
Bağlantıyı Kapatma:
$conn = null; // veya $conn = NULL;