Yücel Alkan

PHP'de PDO ile MySQL Bağlantısı Kurma

Merhabalar. Bu yazımda PDO kullanarak MySQL veritabanı bağlantısının nasıl yapıldığını açıklayacağım. Web programlama işine yeni başlayanların gözünde büyüttükleri PDO'nun kullanım açısından ne kadar kolay olduğunu göreceksiniz.

1. Basit Bağlantı 

PDO ile MySQL bağlantısı oluşturmak için aşağıdaki ifadeyi yazmanız yeterlidir. Buradaki $db değişkeninin adını değiştirebilirsiniz ancak bu işle uğraşanlar genelde $db veya $con gibi ifadeler kullanmaktadırlar. 

$db = new PDO('mysql:host=HostAdi;dbname=veritabaniAdi;charset=utf8', "KullanıcıAdi", "Şifre");

Bu ifadede yer alan hostAdi kısmına kendi bilgisayarınızda çalışıyorsanız Localhost, sunucu üzerinde yer alan bir MySQL veritabanına bağlantı kurmak istiyorsanız IP adresinizi yazmalısınız.

veritabaniAdi kısmına ise bağlanmaya çalıştığınız veritabanı adını yazmalısınız. KullanıcıAdi kısmına MySQL kullanıcı adını, Şifre kısmına ise bu kullanıcıya ait şifreyi yazmalısınız. 

Bu şekilde tek satırla MySQL bağlantısı oluşturabilirsiniz ancak bu kullanımda herhangi bir hata yakalama durumu olmadığını da unutmayın.

2. Bağlantıda Hata Yakalama

Birçok programlama dilinde olduğu gibi PHP'de de try-catch yapısı ile hata yakalama işlemi yapılabilmektedir. PDO bağlantısında hata yakalamak istiyorsanız aşağıdaki yapıyı kullanabilirsiniz. Bağlantının başarılı bir şekilde oluşturulduğundan emin olduktan sınra aşağıdaki ifadede yer alan "Bağlantı Başarılı" satırını silebilir ya da yorum satırı haline getirebilirsiniz. Aksi takdirde bu çıktı kullanıcıya yansıyacaktır.

try {
     $db = new PDO('mysql:host=HostAdi;dbname=veritabaniAdi;charset=utf8', "KullanıcıAdi", "Şifre");
     print "Bağlantı Başarılı!";
} catch (PDOException $e) {
     print "Bağlantı Kurulamadı. Hata : " . $e->getMessage() . "<br/>";
     die();
}

Bu şekilde bir bağlantı kurmanızı tavsiye ederim. Çünkü hata durumlarında hatanın ne olduğu hakkında doğrudan bilgi sahibi olabiliyorsunuz. Örneğin; veritabanı adını yanlış yazdığınız zaman aşağıdaki gibi bir hatayla karşılaşacaksınız.

SQLSTATE[HY000] [1049] Unknown database 'ogrenciler'

Hata metnine göre "ogrenciler" adında bir veritabanı MySQL'de bulunmuyor. Gördüğünüz gibi hatanın ne olduğunu bize gösteriyor. 

3. Bağlantı Sonlandırma

Veritabanı ile ilgili işlemlerin bittiği noktada bağlantı değişkenine null değerini atayarak bağlantıyı sonlandırabilirsiniz. 

// Bağlantı Oluşturma
try {
     $db = new PDO('mysql:host=HostAdi;dbname=veritabaniAdi;charset=utf8', "KullanıcıAdi", "Şifre");
     // print "Bağlantı Başarılı!";
} catch (PDOException $e) {
     print "Bağlantı Kurulamadı. Hata : " . $e->getMessage() . "<br/>";
     die();
}

// İşlemler

// İşlemler Bitti.
$db=null;

4. Kalıcı Bağlantı Oluşturma

PDO ile kalıcı bağlantı oluşturmak için PDO::ATTR_PERSISTENT değerini true olarak atamanız gerekmektedir. HTTP protokolünü kullanan uygulamalar veritabanı bağlantısı için öncelikle önbelleği kontrol ederler. Eğer PDO ile kalıcı bağlantı oluşturursanız, sayfaki kodlarınız çalıştırıldak sonra önbelleğe alınan bağlantı kapatılmayacak ve bir sonraki bağlantı işleminde önbelleğe alınan bu bağlantı değişkeni üzerinden işlem yapılmaya devam edilecektir. Bu uygulamadaki amaç bağlantı maliyetini yani süresini ortadan kaldırmak ve işlemlerin daha hızlı gerçekleştirilmesini sağlamaktır.

$db = new PDO('mysql:host=hostAdi;dbname=veritabaniAdi', "Kullanıcı", "Şifre", array( PDO::ATTR_PERSISTENT => true));

10.06.2019
11971
Yorumlar
Rasime eldemir (07 Mart 2021 - 20:02)
baglanti hatası SQLSTATE[HY000] [2019] Unknown character set problemi bulamıyorum.
Yücel Alkan (07 Mart 2021 - 21:51)
Karakter setinizde problem var. UTF8 olarak yazdığınızdan emin misiniz?
Cevapla
Yorum Yapın