SevkiBilge

PHP'de PDO ile Güvenli Veri Tabanı Bağlantısı Nasıl Kurulur?

SebnemOzkan
· 4 gün önce · 1 görüntülenme
Merhaba arkadaşlar, uzun süredir PHP ile uğraşıyorum ama veri tabanı bağlantılarında hep eski usul mysql_* fonksiyonlarını kullanıyordum. Geçenlerde bir projede PDO'ya geçmeye karar verdim ve gerçekten farkı gördüm. Özellikle SQL enjeksiyonuna karşı prepared statement kullanımı çok rahat, ama ilk başta kafam biraz karıştı. Şu an temel bir bağlantı kurdum, try-catch ile hata yakalıyorum, fakat bağlantı parametrelerini doğru ayarlamak konusunda hala emin değilim. Sizce PDO'da hangi hata modu daha güvenli? Exception fırlatmak mı yoksa sessizce hata loglamak mı? Ayrıca persistent bağlantı kullanımı performansı gerçekten artırıyor mu, yoksa gereksiz mi?

Kendi deneyimlerime göre, PDO ile bağlantı kurarken dsn, kullanıcı adı ve şifre dışında charset ayarını da eklemek şart. Özellikle Türkçe karakter sorunları yaşamamak için utf8mb4 kullanıyorum. Ama bazı kaynaklarda fetch modu olarak PDO::FETCH_ASSOC öneriliyor, ben genelde PDO::FETCH_OBJ kullanıyorum çünkü nesne tabanlı çalışmak daha rahat geliyor. Siz hangi fetch modunu tercih ediyorsunuz? Bir de PDO'da birden fazla veri tabanı türüne (MySQL, PostgreSQL gibi) aynı kodla bağlanabilmek avantaj gibi görünüyor, ama pratikte bu geçişleri yapan var mı aranızda? Yaşadığınız tuzaklar veya püf noktaları varsa paylaşırsanız sevinirim.

Son olarak, bağlantıyı her sayfada yeniden kurmak yerine tek bir config dosyasından çağırmak ve bir sınıf içinde sarmalamak en mantıklısı gibi. Ben şöyle bir yapı kurdum: Config.php içinde sabitler tanımlıyorum, Database.php sınıfı da bu sabitleri kullanarak PDO instance'ı oluşturuyor. Ancak bu sınıfı her kullanışımda yeni bir bağlantı mı açılıyor, yoksa singleton pattern ile tek bir bağlantı mı kalmalı? Deneyen varsa, hangi yöntem daha stabil ve güvenli? Özellikle yüksek trafikli sitelerde bu kritik olabilir. Fikirlerinizi merak ediyorum.
0 yanıt

Henüz yanıt bulunmuyor. İlk yanıtlayan siz olun!

Yanıt yazmak için giriş yapın.