PDO ile bir veritabanına bağlanırken aşağıdaki gibi bir söz dizimi kullanılabilir. Buradaki örneklerimizde veritabanı olarak mysql kullanılacaktır. Farklı veritabanları için değişiklikler yapmak gerekmektedir. Ayrıca pdo nun exception ı mevcut olduğundan try catch bloğu içerisinde kullanmak olası hataları bulmamıza yardımcı olur.
try { $pdo = new PDO("mysql:host=sunucu;dbname=veritabani_adi;charset=utf8", "kullaniciadi", "sifre",$ayarlar); } catch ( PDOException $e ){ echo $e->getMessage(); }
mysql | Baglanacakgımız veri tabanı sürücüsü | |
host | Veritabanımızın buluduğu sunucu | |
dbname | Veri tabanımızın adı | |
charset | Kullanacağımız karakter seti | |
kullanıcıadı | Veritabanımıza erişim için gerekli kullanıcı adı | |
sifre | Veritabanımıza erişim için gerekli şifre | |
$ayarlar | Bir dizi olarak pdo yapılandırma ayarları bu değişkende belirtilebilir isteğe bağlıdır Eğer istenirse bağlantı sırasında veya sonradan ayarlar belirtilebilir. |
Örnek : Kodumuz ile aynı sunucuda deneme isminde bir veritabanına bağlanmak için gerekli kullanıcı adımız root ve şifre 1234 olduğunu varsayarak aşağıdaki şekilde bağlantı kurabiliriz.
try { $ayarlar = array( PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ); $pdo = new PDO("mysql:host=localhost;dbname=deneme;charset=utf8", "root", "1234",$ayarlar); } catch ( PDOException $e ){ echo $e->getMessage(); }
Yukarıdaki örnekde $ayarlar dizisinde PDO::ATTR_DEFAULT_FETCH_MODE değeri PDO::FETCH_ASSOC olarak belirlenmiştir. Sorgu sırasında dönen verinin yapısını belirlemek için kullanılmıştır. Bu yapı pdo ile her sorguda ayrı ayrı belirtilebilmektedir. Sadece tablodaki sütun isimlerine göre indisli bir dizi dönmesi bizim uygulamarda yeterli olacagından her sorguda PDO::FETCH_ASSOC yapısını kulanmak yerine başlangıçta varsayılan değerini belirledim.
PDO::ATTR_DEFAULT_FETCH_MODE Varsayılan olarak satırın nasıl döndürüleceğini belirtmek için kullanılır. PDO::FETCH_* sabitlerinden biri olmalıdır. PDO::FETCH_BOTH öntanımlı değerdir.
Alabileceği degerler php.net te şu şekildedir.
-
PDO::FETCH_ASSOC
: Sütun isimlerine göre indisli bir dizi döner. -
PDO::FETCH_BOTH
(öntanımlı): Hem sütun isimlerine hem de sütun numaralarına göre indislenmiş bir dizi döner. İlk sütunun indisi 0'dır. -
PDO::FETCH_BOUND
: Sütun değerlerini PDOStatement::bindColumn() ile ilişkilendirilmiş PHP değişkenlerine atar veTRUE
döndürür. -
PDO::FETCH_CLASS
: İstenen sınıfın özelliklerini sütun isimlerine eşleyerek sınıfın bir örneğini döndürür. Eğeralım_tarzı
değiştirgesiPDO::FETCH_CLASSTYPE
sabitini içeriyorsa (örn, PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) sınıf ismi ilk sütunun değerine göre belirlenir. -
PDO::FETCH_INTO
: İstenen sınıfın mevcut örneğini sütun isimlerini sınıf özelliklerine eşleyerek günceller. -
PDO::FETCH_LAZY
:PDO::FETCH_BOTH
vePDO::FETCH_OBJ
sabitlerinin birleşimidir. -
PDO::FETCH_NUM
: Sütun numaralarına göre indislenmiş bir dizi döner. İlk sütunun indisi 0'dır. -
PDO::FETCH_OBJ
: Özellik isimlerinin sınıf isimlerine denk düştüğü bir anonim nesne örneği döndürür.