Yükleniyor...

MySQL Veritabanı

MySQL Veritabanı, PHP ile web uygulamaları geliştirenler için kritik bir araçtır. PHP uygulamaları, dinamik içerik üretmek, kullanıcı verilerini yönetmek ve karmaşık veri işlemleri gerçekleştirmek için güçlü ve güvenli bir veritabanı sistemine ihtiyaç duyar. MySQL, ilişkisel veritabanı yapısıyla tablolar, ilişkiler ve indeksler aracılığıyla veri yönetimini optimize eder. PHP ile entegre edildiğinde CRUD (Create, Read, Update, Delete) işlemlerini güvenli ve verimli bir şekilde gerçekleştirmek mümkün olur.
Bu eğitimde, PHP’de MySQL veritabanı kullanımı, PDO ile güvenli bağlantı kurma, prepared statements kullanımı ve OOP prensipleri ile veritabanı mantığını sınıflar içinde organize etme gibi ileri seviye konular işlenecektir. Öğrenciler, veri yapıları, algoritmalar ve PHP’nin sözdizimi konularında uygulamalı bilgi edinecek, aynı zamanda yazılım mimarisi ve sistem tasarımındaki rolünü kavrayacaklardır. Güvenli kod yazımı, hataların try-catch bloklarıyla yönetimi, veri bütünlüğü ve performans optimizasyonu gibi best practice’ler de detaylı olarak ele alınacaktır.
Bu ders, gerçek dünya projelerinde MySQL veritabanı ile PHP kullanımını anlamak isteyen ileri seviye geliştiricilere yöneliktir. Katılımcılar, kod tekrarını azaltan, güvenli, ölçeklenebilir ve bakım dostu PHP uygulamaları geliştirmeyi öğreneceklerdir.

Temel Örnek

php
PHP Code
<?php
$host = 'localhost';
$dbname = 'example_db';
$user = 'root';
$pass = '';

try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
) ENGINE=InnoDB;";
$pdo->exec($sql);

$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->execute(['name' => 'Ahmet Yılmaz', 'email' => '[email protected]']);

echo "Tablo oluşturuldu ve veri eklendi.";
} catch (PDOException $e) {
echo "Veritabanı hatası: " . $e->getMessage();
}
?>

Bu örnek, PHP’de MySQL veritabanına PDO kullanarak güvenli bir bağlantı kurulmasını göstermektedir. UTF-8 karakter seti kullanılması, özel karakterlerle uyum sağlar. PDO::ATTR_ERRMODE ile PDO::ERRMODE_EXCEPTION ayarı, hataların düzgün şekilde yakalanmasını sağlar. CREATE TABLE IF NOT EXISTS komutu, tabloların birden fazla kez oluşturulmasını önler. Prepared statements kullanımı, SQL enjeksiyon saldırılarına karşı güvenlik sağlar ve veritabanı işlemlerinde veri bütünlüğünü korur. Bu kod, PHP’de veri yapıları ve temel algoritmaların nasıl uygulanacağını gösterir ve CRUD işlemleri için sağlam bir temel sunar. Ayrıca, try-catch bloklarıyla hata yönetimi yapılması, uygulamanın güvenilirliğini artırır.

Pratik Örnek

php
PHP Code
<?php
class Database {
private $pdo;

public function __construct($host, $dbname, $user, $pass) {
try {
$this->pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Bağlantı hatası: " . $e->getMessage());
}
}

public function getUsers() {
$stmt = $this->pdo->query("SELECT * FROM users ORDER BY name ASC");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

public function addUser($name, $email) {
$stmt = $this->pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
return $stmt->execute(['name' => $name, 'email' => $email]);
}
}

$db = new Database('localhost', 'example_db', 'root', '');
$db->addUser('Elif Demir', '[email protected]');
$users = $db->getUsers();

foreach ($users as $user) {
echo $user['id'] . " - " . $user['name'] . " - " . $user['email'] . "<br>";
}
?>

Bu örnek, OOP yaklaşımıyla MySQL veritabanı işlemlerinin nasıl organize edileceğini gösterir. Database sınıfı, bağlantıyı yönetir ve veritabanı ile etkileşimi metotlar aracılığıyla sağlar. getUsers metodu tüm kullanıcıları alfabetik sırayla döndürürken, addUser metodu verileri prepared statements ile ekler. Bu yaklaşım, kodun yeniden kullanılabilirliğini, bakımını ve ölçeklenebilirliğini artırır. Ayrıca, try-catch ile hata yönetimi yapılması, uygulamanın güvenli ve kararlı çalışmasını sağlar. Bu yapı, kullanıcı yönetimi, ürün katalogları veya sipariş sistemleri gibi gerçek dünya projelerine direkt uygulanabilir. Algoritmaların uygulanması, OOP ve PHP’nin diziler ve hata yönetimi özelliklerinin kullanımı, ileri düzey PHP geliştirme için temel örnek teşkil eder.

MySQL ile PHP çalışırken en iyi uygulamalar arasında PDO kullanımı, prepared statements, try-catch ile hata yönetimi, kullanıcı girişlerinin doğrulanması ve mantığın sınıflarda kapsüllenmesi yer alır. Performans optimizasyonu için indeksleme, transaksiyon yönetimi, caching ve gereksiz sorguların önlenmesi önerilir. Yaygın hatalar; mysql_* fonksiyonlarının kullanımı, kullanıcı girişlerini direkt SQL’e ekleme, istisnaların ihmal edilmesi ve kaynakların doğru yönetilmemesidir. PDO debug modu, try-catch ve EXPLAIN komutu ile sorguların analizi yapılabilir. Güvenlik için şifreleme, kullanıcı yetkilendirme ve SQL Injection ile XSS saldırılarına karşı önlemler alınmalıdır.

📊 Referans Tablosu

PHP Element/Concept Description Usage Example
PDO Güvenli veritabanı bağlantısı ve prepared statements $pdo = new PDO("mysql:host=localhost;dbname=example_db", "root", "password");
Prepared Statements SQL enjeksiyonunu önler $stmt = $pdo->prepare("INSERT INTO users (name) VALUES (:name)");
fetchAll(PDO::FETCH_ASSOC) Sonuçları ilişkisel dizi olarak döndürür $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
try-catch Hataları yönetmek için try { ... } catch (PDOException $e) { echo $e->getMessage(); }
OOP Class Veritabanı operasyonlarını kapsüller ve tekrar kullanılabilir class Database { public function addUser() {...} }

MySQL Veritabanı ile PHP geliştirme becerileri, güvenli, ölçeklenebilir ve bakım dostu uygulamalar yaratmayı sağlar. PDO ve prepared statements veri bütünlüğünü güvence altına alırken, sınıflar aracılığıyla modüler yapı kodun yeniden kullanılabilirliğini artırır. Sorgu optimizasyonu, transaksiyon yönetimi ve caching, uygulama performansını artırır. İş mantığını veritabanından ayırmak, güvenlik önlemlerini uygulamak ve kod tekrarını azaltmak, PHP’de ileri düzey geliştirme için temel stratejilerdir. Resmî PHP dökümantasyonu ve topluluk kaynakları, öğrenmeye devam etmek ve becerileri pekiştirmek için önemli araçlardır.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek