Bağlantılar temel PDO sınıfının örneklenmesiyle kurulur. Hangi sürücünün kullanılacağının bir önemi yoktur; daima PDO sınıf isminin kullanılması gerekir. Veritabanı kaynağı (diğer bir deyişle DSN) ve isteğe bağlı olarak kullanıcı ismi ve parolası belirtmek için kurucu kullanılabilir.
Örnek 1 - MySQL'e bağlanma
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>Bir hata oluşursa bu bir PDOException istisnasına sebep olur. Hatayı ele almak için istisna yakalanabilir veya işlem set_exception_handler() üzerinden ayarlanmış bir küresel hata işleme uygulamasına bırakılabilir.
Örnek 2 - Bağlantı hatalarının ele alınışı
<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
// örneğin zaman aşımını bekledikten sonra yediden bağlanmaya çalış
}
?>
   Tıpkı diğer herhangi bir istisna
   gibi, PDOException da bir catch deyimi aracılığıyla
   açıkça veya set_exception_handler() aracılığıyla dolaylı
   olarak yakalanabilir. Aksi takdirde varsayılan olarak, yakalanmamış bir
   istisnayı E_FATAL_ERROR ölümcül hatasına dönüştürme
   davranışı gerçekleşir. Ölümcül hata, bağlantı ayrıntılarını sızdırabilecek
   bir geri izleme içerecektir. Bu nedenle, bir üretim sunucusunda php.ini
   display_errors
   seçeneğine 0 atanmalıdır.
  
  Veritabanı bağlantısının başarıyla kurulmasıyla betiğinize PDO sınıfının bir
  örneği döner. PDO nesnesinin ömrü boyunca bağlantı etkin kalır. Bağlantıyı
  kapatmak için, nesneye gönderimli herşeyin silindiğinden emin olarak nesneyi
  yok etmek gerekir; nesneyi tutan değişkene null atanarak bu yapılabilir.
  Bu yapılmazsa, PHP betiği sonlandığında nesne kendiliğinden yok edilir.
 
Bilginize: Bu PDO örneğine hala başka gönderimler varsa (örneğin bir PDOStatement örneğinden veya aynı PDO örneğine gönderimli diğer değişkenlerden), bunların da kaldırılması gerekir (örneğin, PDOStatement'a başvuran değişkene
nullatanarak).
Örnek 3 - Bir bağlantının kapatılışı
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// burada bağlantıyı kullanıyoruz
$sth = $dbh->query('SELECT * FROM foo');
// İşimiz bittiğine göre bağlantıyı kapatabiliriz.
$sth = null;
$dbh = null;
?>Çoğu HTTP uygulaması veritabanı sunucularına kalıcı bağlantılardan medet umar. Kalıcı bağlantılar betiğin işi bittiğinde kapatılmaz, önbelleğe alınıp aynı kimlik kanıtlarıyla bağlantı kurmak isteyen başka betiklerce kullanılır. Kalıcı bağlantı önbelleği, bir betiğin bir veritabanı ile her iletişime geçme isteğinde yeni bir bağlantı kurma maliyetini ortadan kaldırır ve uygulamanın daha hızlı çalışmasını sağlar.
Örnek 4 - Kalıcı bağlantılar
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>
  PDO::ATTR_PERSISTENT seçeneğinin değeri, sayısal
  olmayan bir dizge olmadığı sürece bool'a (kalıcı bağlantıları
  etkinleştir/devre dışı bırak) dönüştürülür, bu durumda çok sayıda kalıcı
  bağlantı havuzunun kullanımına izin verilir. Bu, farklı bağlantılar uyumsuz
  ayarlar kullanıyorsa, örneğin farklı
  PDO::MYSQL_ATTR_USE_BUFFERED_QUERY değerleri
  kullanılıyorsa yararlıdır.
 
Bilginize:
Kalıcı bağlantı kullanmak için PDO kurucusuna aktarılan sürücü seçenekleri dizisinde
PDO::ATTR_PERSISTENTsabitinetrueatanmalıdır. Nesne ilklendirildikten sonra bu özelliğin PDO::setAttribute() ile etkin kılınması istenirse sürücü kalıcı bağlantıları kullanmayacaktır.
Bilginize:
PDO ODBC sürücüsü kullanılıyorsa ve ODBC kütüphaneleri ODBC Bağlantı Havuzlarını destekliyorsa (hem unixODBC hem de Windows bunu yapar; başkaları da olabilir) kalıcı PDO bağlantılarının kullanılması önerilmez; bağlantı önbelleklemesini ODBC Bağlantı Havuzlama katmanına bırakmak daha iyidir. ODBC Bağlantı Havuzu bağlantıyı süreçteki diğer modüllerle paylaşır; eğer PDO bağlantıyı önbelleklemeye çalışırsa bu bağlantı asla ODBC bağlantı havuzuna dönmez ve sonuçta diğer modüllere hizmet vermek için ek bağlantılar oluşur.
