PDO ile bağlantı kurma
PDO kurucusuyla veritabanına DSN ile bağlanmayı öğrenirsin.
PDO kurucusu
PDO'ya bağlanmak için new PDO($dsn, $user, $password) yazılır. DSN bağlantı dizesidir; sqlite::memory: gibi sürücü adıyla başlar.
SQLite için kullanıcı ve parola gerekmez; bu durumda DSN tek başına yeter. MySQL için ise mysql:host=localhost;dbname=test biçiminde yazılır ve $user, $password argümanları eklenir.
Bağlantı başarısız olursa PHP bir PDOException fırlatır.
PDOException ve hata modu
Bağlantı sırasında hata olursa (örneğin DSN yanlışsa) PDO bir PDOException fırlatır. Yakalanmazsa program durur.
Güvenli bağlantı kodunu try/catch içine alın; catch (PDOException $e) ile hatayı yakala. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) ile hata modunu ayarla; böylece sorgu hataları da istisna fırlatır.
Bağlantıyı kapatmak için $pdo = null yaz; PHP betiği bitince de otomatik kapanır.
Uygulama try/catch ile güvenli bağlantı
Bellek içi SQLite'a new PDO('sqlite::memory:') ile bağlan. Bağlantıyı try/catch içine al; catch (PDOException $e) ile hatayı yakala. Başarılı olursa 'OK' yazdır; hata olursa $e->getMessage() çağrısıyla mesajı yazdır.
Örnek çözümü göster
:memory:'); yaz ve echo 'OK' . "\n"; ile yazdır. catch (PDOException $e) ile yakala ve echo $e->getMessage() . "\n"; ile mesajı yazdır.
Örnek çözüm:
<?php
// try/catch ile güvenli bağlantı kur
try {
$pdo = new PDO('sqlite::memory:');
echo 'OK' . "\n";
} catch (PDOException $e) {
echo $e->getMessage() . "\n";
}
Kendini test et
-
PDO kurucu çağrısını tamamla
<?php $dsn = 'sqlite::memory:'; $pdo = ____($dsn); echo get_class($pdo) . "\n"; ?>Cevabı göster
<?php $dsn = 'sqlite::memory:'; $pdo = new PDO($dsn); echo get_class($pdo) . "\n"; ?> -
Bağlantı sırasında PDOException fırlarsa ne yapmalı?
- try/catch ile yakala
- Programın çökmesini bekle
- die() ile hemen çık
- echo ile uyarı yaz, devam et
Cevabı göster
try/catch ile yakala — Doğru. try/catch ile PDOException yakalanır; catch bloğunda hata yönetilir.
-
Bağlantı kavramlarını eşleştir
- new PDO($dsn)
- Bağlantı kurar
- PDOException
- Bağlantı hatası
- $dsn
- Bağlantı dizesi
- try/catch
- Hata yakalar