Php PDO Veritabanı bağlantısı

Php ile yapılabilecekler listesinden biride Veritabanı işlemleri,

php ile veritabanına sorgular gönderip temel olarak verileri silme,güncelleme,ekleme,seçme gibi işlemleri gerçekleştirebiliriz.

Veritabanı ile bağlantı kurmak için 2 adet seçeneğimiz bulunuyor; bunlardan bahsetmek gerekirse mysqli,pdo nesneleri diyebiliriz.


İkinci yöntemimiz olan mysqli_connect ise bizim mysql veya mariadb veritabanlarına bağlantı kurmamızı ve delete,insert,select,update gibi sorguları göndermemizi sağlıyor.
Mysql veritabanı sistemi ile bağlantı kurmak için mysqli oldukça yeterli bir yöntemdir.

Pdo'dan bahsedecek olursak pdo bizim için mysqli yönteminin yaptığı işlemleri yapmakla beraber başka veritabanı sistemleri ile de bağlantı kurmamızı sağlayan bir yöntem.

bunlara ek olarak eskiden kullanılan mysql_connect methodu artık  php geliştirileri tarafından desteklenmeyen eski bir yoldur.
Kullanılabilmesine kullanabiliriz ama artık kimsenin yeni yazılım geliştiriken mysql_connect gibi eski yolları kullanmadığı bilinen bir gerçek haline geldi.Artık bu yöntem yerine mysqli_connect veya pdo kullanıyoruz.

Pdo'nun bağlantısını desteklediği veritabanlarından bazıları şöyle ;

Microsoft sql server,
Ibm informix dynamic server,
mysql,
Oracle,
Postgre sql,
Sqlite

pdo'nun bize getirdiği en büyük faydası ise örneğin yaptığımız yazılımda kullandığımız veritabanı mysql olduğunu düşünelim ve ilerde veritabanını sqlite olarak değiştirmemiz gereksin.Bu durumda bağlantıyı mysqli ile yaptığımızda bütün yazılımdaki bağlantı alanlarını yeniden değiştirmemiz gerekecektir ama pdo ile bağladığımda başka bağlantı şekilleri de desteklendiğinden veritabanı değiştirme işlemi çok daha zahmetsiz bir hale gelebilir.

PDO nesne tabanlı bir yöntemdir.
Ve pdo kelimesi (PHP DATA OBJECTs) php veri objeleri anlamına gelmektedir.


Pdo veritabanı bağlantısı 

veritabanına bağlanmak için pdo() ile bir veritabanı nesnesi oluşturuyoruz.

$db=new PDO();

bu nesnenin içerisine veri tabanı bağlantı bilgilerimizi giriyoruz.Bunun için 2 adet yöntemi inceleyelim;
ilk olarak değişken oluşturarak bağlanalım:

$host="localhost";
$dbname="testdb";
$kullanicidi="root";
$sifre="123";

yukarıda oluşturduğumuz değişkenlere veritabanının bulunduğu host,veritabanı adı,veritabanı kullanıcı adı,veritabanı kullanıcı şifresini girdik.
Ardından nesnemizi oluşturup içerisine bilgileri girelim:

$db=new PDO("mysql:host=$host;dbname=$dbname;charset=UTF8",$kullaniciadi,$sifre);

böylece nesnemizi oluşturmuş olduk.Artık bu nesne üzerinden veritabanına sorgu gönderip işlemleri gerçekleştirebiliriz.

Fakat bu nesneyi oluştururken bağlantıda herhangi bir sorun oluşmasına karşın try-catch blokları kullanıyoruz:

bu şekilde bir problem yaşanırsa hata kodunu görebiliriz.

Veritabanı bağlantısını kapatmak

Veritabanı değişkenine null değerini atayarak pdo bağlantısını kapatabiliyoruz.
$db=null;

Pdo sürücüleri 


Sunucumuzda yüklü olan pdo sürücülerini görüntülemek için kullanacağımız fonksiyon getAvailableDrivers() fonksiyonudur.Bu fonksiyon kullanmamızın sebebi eğer ki örneğin microsoft sql server ile işlem yapacaksak sunucuda pdo yazılımı yüklü olmayabilir bunları listelemek için kullanabiliriz:


görselde görüldüğü gibi sunucumda 2 adet(mysql,sqlite) pdo sürücüsü bulunuyor.

Diğer sürücüleri etkinleştirmek için php.ini dosyasında

eklentilerin önündeki ; işaretini kaldırarak etkinleştirebilirsiniz.
sürücüler hakkında detaylı bilgiyi php.net sitesinden araştırabilirsiniz.
Blogger tarafından desteklenmektedir.