Başlıkta da yazıldığı gibi PDO yani PHP Data Object Kullanımını açıklayacağız. Kısaca PDO nedir PHP.NET sayfasından özetleyelim :
PDO (PHP Veri Nesneleri): PDO eklentisi, PHP’deki veritabanlarına erişmek için hafif ve tutarlı bir arayüz tanımlar. PDO arayüzü tanımı bulunan her veritabanı sürücüsü, veritabanına özgü özellikleri sıradan eklenti işlevleri olarak ifade edebilir
Daha fazla bilgi için PHP PDO sayfasını ziyaret edebilirsiniz.
PHP 5 + sürümleri ile uyumluluk göstermektedir, desteklediği veritabanları şunlardır
DBLIB: FreeTDS / Microsoft SQL Server / Sybase
Firebird (http://firebird.sourceforge.net/): Firebird/Interbase 6
IBM (IBM DB2)
INFORMIX – IBM Informix Dynamic Server
MYSQL (http://www.mysql.com/): MySQL 3.x/4.0
OCI (http://www.oracle.com): Oracle Call Interface
ODBC: ODBC v3 (IBM DB2 and unixODBC)
PGSQL (http://www.postgresql.org/): PostgreSQL
SQLITE (http://sqlite.org/): SQLite 3.x
Local serverinizde phpinfo() fonksiyonumuzu çalıştıralım ve PDO eklentisinin aktif olup olmadığını görelim.
1 2 3 |
phpinfo(); |
pdo_mysql kelimesini arama yapın uygun sonuç varsa işlem yapmamıza gerek yok , eğer yoksa php.ini dosyamızda birkaç değişiklik yapacağız.
Mysql için eklenti kodumuz
[PHP_PDO] extension=php_pdo.dll[PHP_MYSQL] extension=php_mysql.dll
desteklediği diğer veritabanları için php.ini dosyamıza eklenecek kodlarımız
extension=php_pdo.dll extension=php_pdo_firebird.dll extension=php_pdo_informix.dll extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll extension=php_pdo_oci.dll extension=php_pdo_oci8.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll
Hangi driverlerimiz aktif onu görelim
PDO::getAvailableDrivers() statik metodumuz ile kontrol edelim
1 2 3 4 5 6 7 |
<?php foreach(PDO::getAvailableDrivers() as $driver) { echo$driver.'<br />'; } |
database driverleri default konumdaysa muhtemelen sonuç şu şekil olmalı
mysql
sqlite
sqlite2
MySql Bağlantı
Örnek Mysql veritabanı bağlantısı.
Veritabanı değerleri şu şekilde oldığunu varsayalım.
Veritabanı adı : ornekDB
Veritabanı kullanıcı adı :sitedeneme
Veritabanı şifresi :123456
1 2 3 4 5 6 7 8 9 10 11 |
<?php try{ $db=newPDO("mysql:dbname=ornekDB;host=localhost","sitedeneme","123456"); echo"PDO bağlandı!"; } catch(PDOException$e) { echo$e->getMessage(); } |
Herhangi problem yoksa PDO bağlandı! mesajını görünecektir.
PostgreSQL Bağlantı
Yine aynı şekilde yukarıdaki bilgilere uygun olarak örnek PostgreSQL veritabanı bağlantısı şu şekilde olur.
1 2 3 4 5 6 7 8 9 10 11 |
<?php try{ $db=newPDO("pgsql:dbname=test;host=localhost","user","pass"); echo"PDO connection!"; } catch(PDOException$e) { echo$e->getMessage(); } |
SQLite Bağlantı
Örnek SQLite veritabanı bağlantısı
1 2 3 4 5 6 7 8 9 10 |
<?php try{ $db=newPDO("sqlite:/path/to/database.sdb"); } catch(PDOException$e) { echo$e->getMessage(); } |
Bağlantı kodumuzda try ve catch bloğumuz içerisine yazdığımız bağlantı kodumuz hata olasılığında catch kısmı devreye girecektir.
Çalışmamızı try kod bloğunun içinde yapmamız daha temiz olacaktır.
Tüm veritabanlarını listeleyen kod
1 2 3 4 5 |
foreach($db->query('SHOW DATABASES')as$row){ print_r($row); } |