PHP PDO ile MySQL Veri Tabanı Bağlantısı

Katılım
11 Ağustos 2021
Mesajlar
2
Makaleler
1
Daha fazla  
Cinsiyet
Erkek
Veri tabanları bilgilerin depolanması için vazgeçilmez, yaygın ve kullanışlı yapılardır.
Bu yapılarla neredeyse her yerde karşılaşırız.

PHP PDO Yapısı ile İlgili MySQL Veri Tabanına Bağlanma :
Herhangi bir sayfada MySQL sorguları yapacaksak mutlaka ama mutlaka bağlantı değişkenimiz sayfanın en başında olmalıdır.
Eğer fark etmeden ana bağlantının üstünde herhangi bir sorgu yazarsanız çalışmayacaktır.
Veri Tabanına bağlantı yapılan değişkeni oluşturma;
$db = new PDO("mysql:host=localhost;dbname=baglanacagimiz_db;charset=karakter_setimiz;", "admin_panel_kullanici_adi", "sifresi");
Gerekli alanları doğru bir şekilde doldurarak SQL bağlantımızı bir değişkene verdik. Bu değişkeni herhangi bir sorgu yapacağınız zaman kullanacaksınız.
Eğer herhangi bir şeyi yanlış girerseniz bir hata ile karşılaşacaksınız, bilgileri girerken dikkatli olun.
Hata yakalama kodu :
PHP:
try{
    $db = new PDO("mysql:host=localhost;dbname=baglanacagimiz_db;charset=karakter_setimiz;", "admin_panel_kullanici_adi", "sifresi");
}catch(PDOException $hata){
    echo "Veri tabanına bağlanırken bir hata oluştu. Hata mesajı : <br> " . $hata->getMessage();
}

Daha sonrasında $db değişkenimizi kullanarak ilgili tabloya sorgu atabiliriz.
 
Son düzenleyen: Moderatör:
Her seferinde yeni baglanti acmak ve newledigin PDO constructor'ina veritabani kimlik parametrelerini gomulu bir sekilde gecmek cok mantikli bir hareket degil bence. Bu yazdigin kod parcasi php.net, w3 vs. bilimum yerde var zaten.

Obur turlu atiyorum 100 farkli yerde bu yapiyi kullanarak bir uygulama gelistirdin diyelim, gelistirme ortamindan canliya alacagin zaman DB kimligi degisecek, 100 tane yeri tek tek duzenlemek mantikli bir hareket mi? Bence degil.

Yani biri tarafindan sorulan soruya cevap olarak atilmis olsa bu kod parcasi bence kabul edilebilir ama dedigim gibi rehber niteliginde bir icerik yok bence. Cunku bu koda ulasmada bir numara yok ama asil onemli olan bu yapi nasil daha konfigure edilebilir ve maintainable yazilabilir noktalarina deginmeliydi.

Elestiri fasli bitti. Onerilerimi de eklemek isterim:

1. Development ortamindan production ortamina geciste degismesi ongorulen sabitler (mesela bu ornekte DB credentiallari) ayri bir dosyada sabit olarak tanimlanmali. Bu koduna cesitli gorusler mevcut. Kimi insanlar INI gibi daha jenerik dosya formatlarini tercih ederken kimi insanlar direk PHP classi icerisinde constant olarak tanimlamayi daha pratik buluyor.

2. PDO constructor'ini newleyerek actiginiz bu kod blogunu singleton deseni mantigina benzer bir sekilde kendi yazdiginiz bir class ile encapsulate edip, static bir degiskende saklayarak her DB erisiminde yeni baglanti newlemek yerine mevcuttaki baglantiyi verebilirdiniz.
 

Yeni konular

Geri
Yukarı